安装mysql后默认是没有密码的(mysql5.7以后会随机产生一个root密码),需要手动去为mysql的root管理员创建密码
初次使用mysql时,是没有mysql命令的,这是因为PATH路径中没有添加mysql的bash路径,需要我们使用export PATH添加一下即可,这里我写入到了/etc/profile文件当中,这样每次开机启动时都会自动加载这个路径,生效这个路径下的命令
这里把所有的路径指定了一下,其中包含重复的,不过这样不会影响到系统正常使用的
[root@aaa ~]# vim /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3/bin:/root/bin:/usr/local/mysql/bin/
修改默认没有密码的mysql,默认没有密码的mysql;不需要密码就能够登入其sql命令行中,可以在命令行中指定用户身份更新密码,也可以使用mysqladmin来更新密码,这种方式比较简单
在命令行中直接写入密码来登入mysql,会有警告提示,警告用户尽量不要使用命令行输入密码的方式登录,因为其密码是明文显示的
[root@aaa ~]# mysqladmin -uroot -password ‘pwd@123‘
[root@aaa ~]# mysql -uroot -ppwd@123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.12 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
修改my.cnf来更改mysql的密码,在my.cnf配置文件中添加skip-grand这项配置,然后重启mysql服务,在mysql5.7中,添加skip-grant则会导致mysql无法启动了,mysql5.7在初始化时会输出一个初始值的密码,需要在安装时留意这个密码,或者在root目录下找到.mysql_secret这个隐藏文件,其第二行就是默认密码,如果批量部署时可以使用特殊权限应用脚本来修改mysql的默认密码。
[root@aaa ~]# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
port = 3306
character-set-server = utf8
explicit_defaults_for_timestamp = true
#skip-grant
[root@aaa ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
mysql5.7查看默认初始化的密码
[root@aaa ~]# cat .mysql_secret
#Password set for user ‘root@localhost‘ at 2018-08-10 18:01:37
aiivsz&#du_.
mysql5.7中修改密码
使用默认密码后无密码认证登入mysql,修改mysql表内容来修改root管理员密码
[root@aaa ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> SET PASSWORD FOR ‘root‘@localhost = PASSWORD(‘pwd@123‘);
Query OK, 0 rows affected, 1 warning (0.00 sec)
链接mysql
mysql密码创建好能正常使用后,我们会在一些远程工具或本地的某些环境中对mysql执行操作(如shell里),针对这些我们直接使用mysql命令来远程登录到这个数据库再执行操作
mysql指定IP地址进行链接,登录时可以不指定密码,如果是在脚本这样的程序中操作,则需要-p密码 ?这样来直接登录到mysql中,-P 是指定端口号
[root@aaa ~]# mysql -uroot -p -h127.0.0.1 -P 3306
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
使用sock文件的通信方式来登录mysql,这种和ip区别在于读取数据时不通过tcp/ip协议,也就是不会把数据发送到网卡然后去读取,可以为数据查询提高点读取速度,-S后指定sock文件所在目录,-S和路径后没有空格
[root@aaa ~]# mysql -uroot -p -S/usr/local/mysql/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
命令行中查询mysql中的数据,一般使用在脚本当中,mysql在登入后,执行语句会有回车的交互动作,依靠脚本语言实现起来比较麻烦,这里就使用了mysql ?-e 来直接输出sql查询的结果,-e 后面的sql语句需要使用单引号引用起来
[root@aaa ~]# mysql -uroot -ppwd@123 -e ‘show databases‘
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ? |
| performance_schema |
| sys ? ? ? ? ? ? ? |
+--------------------+
查询mysql的所有库 ? ? show databases;
mysql> show databases;
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ? |
| performance_schema |
| sys ? ? ? ? ? ? ? |
+--------------------+
4 rows in set (0.00 sec)
进入或切换一个库,这里进入名为mysql的库 ? ??use mysql;
并查询库里有哪些表 ? ? show tables;
mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db ? ? ? ? ? |
| engine_cost |
| event ? ? ? |
| func ? ? ? ? |
| general_log |
-----------------省略部分
查看表里的字段 ? desc ?tb_name(表名);
mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host ? ? ? ? ? ? ? ? | char(60) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ? | ? ? ? ? ? ? ? ? ? |
| User ? ? ? ? ? ? ? ? | char(32) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ? | ? ? ? ? ? ? ? ? ? |
| Select_priv ? ? ? ? | enum(‘N‘,‘Y‘) ? ? ? ? ? | NO | ? ? ? | ? ? N | ? ? ? ? ? ? ? ? ? |
| Insert_priv ? ? ? ? | enum(‘N‘,‘Y‘) ? ? ? ? ? | NO | ? ? ? | ? ? N | ? ? ? ? ? ? ? ? ? |
| Update_priv ? ? ? ? | enum(‘N‘,‘Y‘) ? ? ? ? ? | NO | ? ? ? | ? ? N | ? ? ? ? ? ? ? ? ? |
------------------省略部分字段
查看建表的语句 show create table tb_name\G;?
可以通过show create table 来查看创建表时使用的语句规则,加上\G使输出更加可视化,不然则是输出较多的符号,不易理解
mysql> show create table user\G;
*************************** 1. row ***************************
? ? ? Table: user
Create Table: CREATE TABLE `user` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,
-------省略部分-----------------------------------
查看当前登录到mysql的用户? select ?user();
查看登录到mysql的有哪些,且是用什么方式登录的(本地或IP登录) ,这里是在本地登录mysql,远程登录mysql会显示出登录的ip或者解析的主机名,若不想让mysql解析远程ip,则需要在my.cnf中禁止解析ip的操作
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
查看当前使用的数据库??select database();
查看登入数据库执行某些进入库的操作后,查看自己现在操作处于哪个库下
mysql> select database();
+------------+
| database() |
+------------+
| mysql ? ? |
+------------+
1 row in set (0.00 sec)
创建一个库 create database holle;
创建库(database)指定创建的库所用的名称
mysql> create database holle;
Query OK, 1 row affected (0.00 sec)
创建表?create table tb1(id
int(4),name
char (40))ENGINE=innodb DEFAULT CHARSET=utf8;
这里创建数据表的内容是;创建一张id长度是4的、字符长度40的表,其指定了数据表使用的查询引擎和字符集(ENGINE和DEFAULT CHARSET)
mysql> create table tb1(`id` int(4),`name`char (40))ENGINE=innodb DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> show create table tb1\G;
*************************** 1. row ***************************
? ? ? Table: tb1
Create Table: CREATE TABLE `tb1` (
?`id` int(4) DEFAULT NULL,
?`name` char(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
查看数据库版本 ?mysql> select version();
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.22 ? |
+-----------+
1 row in set (0.00 sec)
查看数据库状态 ? show status;
查看常用的数据状态
mysql> show status;
+-----------------------------------------------+--------------------------------------------------+
| Variable_name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+-----------------------------------------------+--------------------------------------------------+
| Aborted_clients ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| Aborted_connects ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
----------------------------省略部分
查看mysql的设置参数 ?show variables\G; ? ??
mysql> show variables\G;
*************************** 462. row ***************************
Variable_name: sql_log_off
? ? ? Value: OFF
*************************** 463. row ***************************
Variable_name: sql_mode
? ? ? Value: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
*************************** 464. row ***************************
Variable_name: sql_notes
? ? ? Value: ON
查看某个参数的统配 ??show variables like ‘max_connect%‘;
?用于查找对应的配置参数,可以查找不太确认的配置参数名称,如所示:
mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name | Value ? ? |
+--------------------+-------+
| max_connect_errors ? | 100 |
| max_connections ? ? | 151 |
+--------------------+-------+
2 rows in set (0.00 sec)
mysql> show variables like ‘slave_parallel%‘;
+------------------------+----------+
| Variable_name ? ? ? ? | Value ? |
+------------------------+----------+
| slave_parallel_type ? | DATABASE |
| slave_parallel_workers | 0 ? ? ? |
+------------------------+----------+
2 rows in set (0.00 sec)
修改mysql配置的参数 ??set global max_connect_errors=1000;
将max_connect_errors的数值从100修改到1000,不过这个修改只是在内存当中生效,意味着如果发生关机开机重启的操作时,这些参数会变回配置文件中的默认配置,要想永久生效应对my.cnf的内容进行配置
mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name | Value ? ? |
+--------------------+-------+
| max_connect_errors ? | 100 |
| max_connections ? ? | 151 |
+--------------------+-------+
2 rows in set (0.00 sec)
mysql> set global max_connect_errors=1000;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name ? ? | Value |
+--------------------+-------+
| max_connect_errors | ?1000 |
| max_connections ? | ? 151 |
+--------------------+-------+
2 rows in set (0.00 sec)
查看mysql处理列队 ?show processlist;
查看mysql处理列队的全部信息 show full processlist;
这两条语句主要查看mysql执行语句的处理情况,判断mysql的工作状态
mysql> show processlist;
+----+------+-----------+---------+---------+-------+----------+------------------+
| Id | User | Host | db | Command | Time ? | State | Info ? ? | ? ? ? ? ? ? ? ? |
+----+------+-----------+---------+---------+-------+----------+------------------+
| 9 | root | localhost | holle ? | Query ? | 0 ? ? | starting | show processlist |
+----+------+-----------+---------+---------+-------+----------+------------------+
1 row in set (0.00 sec)
mysql> show full processlist;
+----+------+-----------+-------+---------+------+----------+-----------------------+
| Id | User | Host ? ? | db ? | Command | Time | State ? | Info ? ? ? ? ? ? ? ? |
+----+------+-----------+-------+---------+------+----------+-----------------------+
| 9 | root | localhost | holle | Query ? | 0 ? | starting | show full processlist |
+----+------+-----------+-------+---------+------+----------+-----------------------+
1 row in set (0.00 sec)
原文:http://blog.51cto.com/8844414/2163019