ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

linux下Mysql的简单操作,从零开始学数据结构和算法

2021-12-24 13:58:00  阅读:165  来源: 互联网

标签:linux set Mysql 从零开始 sec time mysql rows NULL


[root@localhost ~]# mysqladmin -uroot password ‘yourpassword’

这样就设置了 ‘root’ 账号的密码了,不妨再来用上面的命令登陆一下试试看:

[root@localhost ~]# mysql -uroot

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password:NO)

报错了,这是在提示我们,root账号是需要密码登陆的。

[root@localhost ~]# mysql -uroot -p’yourpassword’

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.1.40-log MySQL Community Server (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

需要加一个 -p 选项,它后面可以直接跟密码,后面不可以有空格,不过密码最好用单引号括起来,不括也可以,但是密码中如果有特殊字符就会有问题了,所以最好是括起来吧。当然, -p后面也是可以不加密码,而是和用户交互的方式,让我们输入密码:

[root@localhost ~]# mysql -uroot -p

Enter password:

连接数据库

刚刚讲过通过使用 mysql -u root -p 就可以连接数据库了,但这只是连接的本地的数据库 “localhost”, 可是有很多时候都是去连接网络中的某一个主机上的mysql。

[root@localhost ~]# mysql -uroot -p -h192.168.137.10 -P3306

Enter password:

其中后边的 -P(大写) 用来指定远程主机mysql的绑定端口,默认都是3306, -h 用来指定远程主机的IP.

一些基本的MySQL操作命令

  1. 查询当前的库

mysql> show databases;

±-------------------+

| Database |

±-------------------+

| information_schema |

| mysql |

| test |

±-------------------+

3 rows in set (0.06 sec)

mysql的命令,结尾处需要加一个分号。

2. 查询某个库的表

首先需要切换到某个库里去:

mysql> use mysql;

Database changed

然后再把表列出来:

mysql> show tables;

±--------------------------+

| Tables_in_mysql |

±--------------------------+

| columns_priv |

| db |

| event |

| func |

| general_log |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| host |

| ndb_binlog_index |

| plugin |

| proc |

| procs_priv |

| servers |

| slow_log |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

±--------------------------+

23 rows in set (0.06 sec)

  1. 查看某个表的全部字段

mysql> desc slow_log;

±---------------±-----------------±-----±----±------------------±----------------------------+

| Field | Type | Null | Key | Default | Extra |

±---------------±-----------------±-----±----±------------------±----------------------------+

| start_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

| user_host | mediumtext | NO | | NULL | |

| query_time | time | NO | | NULL | |

| lock_time | time | NO | | NULL | |

| rows_sent | int(11) | NO | | NULL | |

| rows_examined | int(11) | NO | | NULL | |

| db | varchar(512) | NO | | NULL | |

| last_insert_id | int(11) | NO | | NULL | |

| insert_id | int(11) | NO | | NULL | |

| server_id | int(10) unsigned | NO | | NULL | |

| sql_text | mediumtext | NO | | NULL | |

±---------------±-----------------±-----±----±------------------±----------------------------+

11 rows in set (0.04 sec)

也可以使用两一条命令,显示比这个更详细,而且可以把建表语句全部列出来:

mysql> show create table slow_log\G;

*************************** 1. row ***************************

Table: slow_log

Create Table: CREATE TABLE slow_log (

start_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP,

user_host mediumtext NOT NULL,

query_time time NOT NULL,

lock_time time NOT NULL,

rows_sent int(11) NOT NULL,

rows_examined int(11) NOT NULL,

db varchar(512) NOT NULL,

last_insert_id int(11) NOT NULL,

insert_id int(11) NOT NULL,

server_id int(10) unsigned NOT NULL,

sql_text mediumtext NOT NULL

) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT=‘Slow log’

1 row in set (0.01 sec)

  1. 查看当前是哪个用户

mysql> select user();

±---------------+

| user() |

±---------------+

| root@localhost |

±---------------+

1 row in set (0.00 sec)

  1. 查看当前所使用数据库

mysql> select database();

±-----------+

| database() |

±-----------+

| mysql |

±-----------+

1 row in set (0.01 sec)

  1. 创建一个新库

mysql> create database db1;

Query OK, 1 row affected (0.05 sec)

  1. 创建一个新表

mysql> use db1;

Database changed

mysql> create table t1 (id int(4), name char(40));

Query OK, 0 rows affected (0.02 sec)

要注意的是,字段名需要用反引号括起来。

  1. 查看当前数据库版本

mysql> select version();

±-----------+

| version() |

±-----------+

| 5.1.40-log |

±-----------+

1 row in set (0.01 sec)

  1. 查看当前mysql状态

mysql> show status;

±----------------------------------±---------+

| Variable_name | Value |

±----------------------------------±---------+

| Aborted_clients | 0 |

| Aborted_connects | 5 |

| Binlog_cache_disk_use | 0 |

| Binlog_cache_use | 0 |

| Bytes_received | 303 |

| Bytes_sent | 7001 |

由于内容太长,阿铭没有全部列出来,如果有兴趣可以网上找资料查一下每一行的含义。

  1. 查看mysql的参数

mysql> show variables;

±----------------------------------------±--------------------+

| Variable_name | Value |

±----------------------------------------±--------------------+

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

| autocommit | ON |

| automatic_sp_privileges | ON |

| back_log | 50 |

| basedir | /usr/local/mysql/ |

限于篇幅,阿铭省略了很多参数没有显示,其中很多参数都是可以在/etc/my.cnf中定义的,并且有部分参数是可以在线编辑的。

  1. 修改mysql的参数

mysql> show variables like ‘max_connect%’;

±-------------------±------+

| Variable_name | Value |

±-------------------±------+

| max_connect_errors | 10 |

| max_connections | 151 |

±-------------------±------+

2 rows in set (0.00 sec)

mysql> set global max_connect_errors = 1000;

Query OK, 0 rows affected (0.01 sec)

mysql> show variables like ‘max_connect_errors’;

±-------------------±------+

| Variable_name | Value |

±-------------------±------+

| max_connect_errors | 1000 |

±-------------------±------+

1 row in set (0.01 sec)

在mysql命令行, “%” 类似于shell下的 *, 表示万能匹配。使用 “set global” 可以临时修改某些参数,但是重启mysqld服务后还会变为原来的,所以要想恒久生效,需要在配置文件 my.cnf 中定义。

  1. 查看当前mysql服务器的队列

这个在日常的管理工作中使用最为频繁,因为使用它可以查看当前mysql在干什么,可以发现是否有锁表:

mysql> show processlist;

±—±-----±----------±-----±--------±-----±------±-----------------+

| Id | User | Host | db | Command | Time | State | Info |

±—±-----±----------±-----±--------±-----±------±-----------------+

| 13 | root | localhost | db1 | Query | 0 | NULL | show processlist |

±—±-----±----------±-----±--------±-----±------±-----------------+

1 row in set (0.01 sec)

  1. 创建一个普通用户并授权

mysql>

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

grant all on . to user1 identified by ‘123456’;

Query OK, 0 rows affected (0.01 sec)

all 表示所有的权限(读、写、查询、删除等等操作), . 前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用单引号括起来。这里的user1指的是localhost上的user1,如果是给网络上的其他机器上的某个用户授权则这样:

mysql> grant all on db1.* to ‘user2’@‘10.0.2.100’ identified by ‘111222’;

Query OK, 0 rows affected (0.01 sec)

用户和主机的IP之间有一个@,另外主机IP那里可以用%替代,表示所有主机,例如:

mysql> grant all on db1.* to ‘user3’@’%’ identified by ‘231222’;

Query OK, 0 rows affected (0.00 sec)

一些常用的sql

  1. 查询语句

mysql> select count(*) from mysql.user;

±---------+

| count(*) |

±---------+

| 8 |

±---------+

1 row in set (0.00 sec)

标签:linux,set,Mysql,从零开始,sec,time,mysql,rows,NULL
来源: https://blog.csdn.net/m0_64867802/article/details/122126426

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有