mysql8.0初识-及无法执行mysqlbinlog指令问题

初识MySQL8

下载安装mysql8的yum源

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

yum localinstall mysql80-community-release-el7-1.noarch.rpm

安装mysql服务

yum install mysql-community-server -y

启动并登录

新版的mysql启动后会在log中给出root用户的初始密码

systemctl start mysqld
  • 查看初始密码
grep 'temporary password' /var/log/mysqld.log
  • 登录系统后修改密码复杂级别
set global validate_password.policy = low;
  • 修改密码
mysql>  alter user 'root'@'localhost' identified by '123456789';

遇到的一个小问题

使用mysqlbinlog指令提示

[root@node1 binlog]# mysqlbinlog mysqlbin.000004 
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'.

这个是mysqlbinlog的一个bug

配置文件中字符集配置如下:

[mysqld]
character-set-server = utf8mb4

[client]
default-character-set = utf8mb4

解决方式:使用mysqlbinlog工具查看二进制日志时会重新读取的mysql的配置文件my.cnf,而不是服务器已经加载进内存的配置文件。
只要修改并保存了my.cnf文件,而不需要重起mysql服务器。所以这里可以使用此方法:把client选项组中default-character-set=utf8选项屏蔽掉,如#default-character-set=utf8,然后运行mysqlbinlog工具,则不会产生任何问题了。当然记得在不在使用mysqlbinlog工具时,把#default-character-set=utf8选项恢复为default-character-set=utf8;

此时mysqlbinlog指令可以使用了

或者 使用 --no-defaults选项使mysqlbinlog指令跳过读取my.cnf中的配置

其他注意点

如果在[client]中将字符集设置成 character-set-client = utf8mb4,那么连mysql指令都无法执行了。

其他不同的地方

创建用户的方式有点不同,不能以grant授权方式创建
– 创建用户并授权:

mysql> create user 'backuser'@'192.168.28.137' identified by 'FdJjDu@23DdjeL';
mysql> grant all privileges on *.* to 'backuser'@'192.168.28.137';
mysql> flush privileges;

mysqldump在备份脚本中执行提示不安全告警问题,其他版本都会有这个提示,在my.cnf中加上如下[mysqldump]段:

[mysqldump]
user=root    #备份用户
password=123456789

这样在脚本中就不需要指定 -u -p参数,直接使用mysqldump指令备份

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注