rpm安装mysql8后碰到的问题
1 mysqld 无法启动
原因 已经使用了3306端口,修改my.cnf中端口为3308
2 修改为3308端口后,还是无法启动,
2023-10-07T02:20:10.096689Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Permission denied
2023-10-07T02:20:10.096730Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3308 ?
2023-10-07T02:20:10.096782Z 0 [ERROR] [MY-010119] [Server] Aborting
原因: selinux 要关闭
2023-10-07T02:22:50.707731Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2023-10-07T02:22:50.760482Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.34' socket: '/var/lib/mysql/mysql.sock' port: 3308 MySQL Community Server - GPL.
2023-10-07T02:22:50.760708Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
3 登录mysql ,提示ERROR 2026 (HY000): SSL connection error: protocol version mismatch
mysql -h127.0.0.1 -P3306 -uroot -p --skip-ssl
mysql -h127.0.0.1 -P3306 -uroot -p --ssl-mode=DISABLED
4 使用上面的命令后,继续报错
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
2023-10-07T02:41:47.510918Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.34) MySQL Community Server - GPL.
2023-10-07T02:41:54.297163Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
2023-10-07T02:41:54.297187Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.34) starting as process 52838
问题3和问题4的原因,因为OS上安装了mysql5.7和mysql5.8. 环境变量是5.7的。所以通过5.7的mysql程序登录mysql8,会出错。使用mysql8的程序登录,即可。
不需要做任何的设置。
#####
8.0的mysql安装在/usr/bin
5 查找mysql密码,登录后修改
[root@redhat762100 sbin]# more /var/log/mysqld.log | grep pass
2023-10-07T01:55:42.745644Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 3d9do&tfnp6P
[root@redhat762100 sbin]#
6 使用随机生成的密码,登录mysql后,无法进行相关操作 ,需要修改密码,修改密码,需要符合相关的策略。
root@db 15:12: [(none)]> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
root@db 15:12: [(none)]>
使用alter user 'root'@'127.0.0.1' 这种方式,居然是错误的 ,使用alter user user() 即可,但是又不符合密码策略
(unknown)@db 15:17: [(none)]> alter user 'root'@'127.0.0.1' identified by 'mysql';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
(unknown)@db 15:17: [(none)]>
(unknown)@db 15:17: [(none)]> alter user user() identified by "123456";
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
(unknown)@db 15:19: [(none)]>
https://mysql.net.cn/doc/refman/8.0/en/validate-password.html <<<< 参考
在my.cnf中设置以下参数
validate_password.length=1 <<<<<< 这个默认值是4
validate_password.policy=0
validate_password.check_user_name=off
2023-10-07T07:35:50.610678Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2023-10-07T07:35:50.619460Z 0 [Warning] [MY-011234] [Server] Effective value of validate_password_length is changed. New value is 4
2023-10-07T07:35:50.656724Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2023-10-07T07:35:50.657378Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.34' socket: '/var/lib/mysql/mysql.sock' port: 3308 MySQL Community Server - GPL.
root@db 15:37: [(none)]> show variables like '%validate_password_length%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| validate_password.length | 4 |
+--------------------------+-------+
1 row in set (0.01 sec)
root@db 15:37: [(none)]>
END