//
mysql8.0带来的两点便利
//
这两天在做MySQL5.7~MySQL8.0的版本升级,收集整理了MySQL8.0的几个比较便利的地方,分享出来,大家可以参考一下。
01
服务重启
mysql服务重启在不同的版本中有不同的方法,这里针对mysql5.5、mysql5.7、mysql8.0做一下简单分析。
在MySQL5.5版本中,如果我们想要重启MySQL数据库,我们需要使用mysqladmin这个工具,或者使用service mysqld stop命令来停止MySQL服务,其中mysqladmin的工具示例如下:
mysqladmin -uroot -pyeyz -h127.0.0.1 shutdown
停止数据库之后,需要使用mysqld或者mysqld_safe工具重新启动数据库。
在MySQL5.7版本中,如果我们想重启服务,相对就比较容易了,不需要使用mysqladmin工具来进行服务停止,而是直接通过mysql交互式命令行里面的shutdown命令,就可以完成数据库的停止,如果你想重启,那不好意思,需要使用mysqld或者mysqld_safe工具来进行启动。
在MySQL8.0中,服务重启就没有那么麻烦了,如果你是使用mysqld_safe启动的mysql服务,则直接使用restart命令来重启服务就可以了。相对比较方便。如下:
mysql> s -------------- /usr/local/Percona-Server-8.0.19-10-Linux.x86_64.ssl101/bin/mysql Ver 8.0.19-10 for Linux on x86_64 (Percona Server (GPL), Release 10, ReVision f446c04) ------ Uptime: 7 days 17 min 39 sec Threads: 2 Questions: 20 Slow queries: 0 Opens: 133 Flush tables: 3 Open tables: 53 Queries per second avg: 0.000 -------------- mysql> restart; Query OK, 0 rows affected (0.00 sec) mysql> select 1; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 8 Current database: *** NONE *** +---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec) mysql> s -------------- /usr/local/Percona-Server-8.0.19-10-Linux.x86_64.ssl101/bin/mysql Ver 8.0.19-10 for Linux on x86_64 (Percona Server (GPL), Release 10, Revision f446c04) -------------- UNIX socket: /data/mysql_4306/tmp/mysql.sock Binary data as: Hexadecimal Uptime: 8 sec Threads: 2 Questions: 6 Slow queries: 0 Opens: 115 Flush tables: 3 Open tables: 35 Queries per second avg: 0.750 --------------
从启动前后s命令输出中的uptime可以看到,当前数据库已经被重启过一次了。
02
额外端口admin_port
额外端口admin_port的存在,为我们在某些特殊场景下登录MySQL提供了可能。例如在出现too many connections这个报错的时候,可以使用额外端口进行登录。额外端口在my.cnf文件中的配置如下:
[root@VM-0-14-centos ~]# cat /data/mysql_4306/my.cnf | grep admin create_admin_listener_thread=1 admin_port=43061 admin_address=127.0.0.1
下面是分别使用端口4306和额外端口43061登录的日志:
[root@VM-0-14-centos ~]# mysql -uroot -pyeyazhou -P43061 --socket=/data/mysql_4306/tmp/mysql.sock mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or g. ······ owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> exit Bye [root@VM-0-14-centos ~]# mysql -uroot -pyeyazhou -P4306 --socket=/data/mysql_4306/tmp/mysql.sock mysql: [Warning] Using a password on the command line interface can be insecure. ...... 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> exit
有帮助的话还希望点下再看哈