设置更改root密码
安装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>
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>
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>
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>
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常用语句
查询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),namechar (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;
+----+------+-----------+---------+---------+-------+----------+------------------+
|>
+----+------+-----------+---------+---------+-------+----------+------------------+
| 9 | root | localhost | holle | Query | 0 | starting | show processlist |
+----+------+-----------+---------+---------+-------+----------+------------------+
1 row in set (0.00 sec)
mysql> show full processlist;
+----+------+-----------+-------+---------+------+----------+-----------------------+
|>
+----+------+-----------+-------+---------+------+----------+-----------------------+
| 9 | root | localhost | holle | Query | 0 | starting | show full processlist |
+----+------+-----------+-------+---------+------+----------+-----------------------+
1 row in set (0.00 sec)
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com