1.使用安装包安装
获取mysql安装包https://downloads.mysql.com/archives/community/
[root@lc133 ~]# ll mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 859453440 1月 9 09:58 mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
卸载旧版本mysql和mariadb
使用rpm和yum命令卸载,查看
[root@lc133 ~]# rpm -qa|grep -i mysql
[root@lc133 ~]#
[root@lc133 ~]# yum list installed | grep mariadb
[root@lc133 ~]#
删除etc/my.cnf和my.cnf.d文件夹
删除/var/lib/mysql文件夹
删除mysql用户
解压安装包
[root@lc133 mysql]# tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-8.0.30-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
mysql-community-common-8.0.30-1.el7.x86_64.rpm
mysql-community-debuginfo-8.0.30-1.el7.x86_64.rpm
mysql-community-devel-8.0.30-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.30-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm
mysql-community-libs-8.0.30-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
mysql-community-server-8.0.30-1.el7.x86_64.rpm
mysql-community-server-debug-8.0.30-1.el7.x86_64.rpm
mysql-community-test-8.0.30-1.el7.x86_64.rpm
安装
[root@lc133 mysql]# rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-common-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.30-1.e################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm --force --nodeps
警告:mysql-community-libs-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.30-1.el7################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-compat-8.0.3################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-plugins-8.################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.30-1.e################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-icu-data-files-8.################################# [100%]
[root@lc133 mysql]# rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm
警告:mysql-community-server-8.0.30-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.30-1.e################################# [100%]
[root@lc133 mysql]# rpm -qa | grep mysql
mysql-community-client-8.0.30-1.el7.x86_64
mysql-community-libs-8.0.30-1.el7.x86_64
mysql-community-server-8.0.30-1.el7.x86_64
mysql-community-client-plugins-8.0.30-1.el7.x86_64
mysql-community-common-8.0.30-1.el7.x86_64
mysql-community-icu-data-files-8.0.30-1.el7.x86_64
mysql-community-libs-compat-8.0.30-1.el7.x86_64
重启服务
[root@lc133 mysql]# systemctl restart mysqld.service
2.yum方式安装
删除etc/my.cnf和my.cnf.d文件夹
删除/var/lib/mysql文件夹
删除mysql用户
获取mysql80-community-release-el7-7.noarch.rpm并安装
https://dev.mysql.com/downloads/repo/yum/
yum install mysql80-community-release-el7-7.noarch.rpm -y
yum install mysql-community-server -y
重启服务
systemctl restart mysqld.service
安装的程序
[root@lc133 mysql]# rpm -qa | grep mysql
mysql-community-icu-data-files-8.0.31-1.el7.x86_64
mysql-community-common-8.0.31-1.el7.x86_64
mysql-community-client-plugins-8.0.31-1.el7.x86_64
mysql-community-server-8.0.31-1.el7.x86_64
mysql-community-libs-8.0.31-1.el7.x86_64
mysql80-community-release-el7-7.noarch
mysql-community-client-8.0.31-1.el7.x86_64
默认的etc/my.cnf配置文件
[root@lc133 mysql]# cat /etc/my.cnf | grep -Ev "^$|^#"
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
3.进入mysql数据库
查看默认生成的mysql密码
[root@lc133 mysql]# cat /var/log/mysqld.log | grep "password"
2023-01-09T08:11:36.544743Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Fk0qKIC#B(Tg
或者重设mysql密码
/etc/my.cnf,在最后添加skip-grant-tables
重启mysql服务,直接登录
[root@lc133 mysql]# mysql -uroot -p
Enter password:
清空密码
mysql> update user set authentication_string='' where user='root';
mysql> flush privileges;
注释/etc/my.cnf,skip-grant-tables
重启mysql服务,进入mysql服务,设置root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123@Super' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
4.关于validate_password 组件
查看mysql动态库文件
[root@lc133 mysql]# ll /usr/lib64/mysql/plugin/
总用量 21696
-rwxr-xr-x 1 root root 30880 7月 7 2022 adt_null.so
-rwxr-xr-x 1 root root 95160 7月 7 2022 authentication_fido_client.so
-rwxr-xr-x 1 root root 6823208 7月 7 2022 authentication_kerberos_client.so
-rwxr-xr-x 1 root root 6697912 7月 7 2022 authentication_ldap_sasl_client.so
-rwxr-xr-x 1 root root 258560 7月 7 2022 authentication_oci_client.so
-rwxr-xr-x 1 root root 15624 7月 7 2022 auth_socket.so
-rwxr-xr-x 1 root root 24640 7月 7 2022 component_audit_api_message_emit.so
-rwxr-xr-x 1 root root 1863216 7月 7 2022 component_keyring_file.so
-rwxr-xr-x 1 root root 28584 7月 7 2022 component_log_filter_dragnet.so
-rwxr-xr-x 1 root root 36720 7月 7 2022 component_log_sink_json.so
-rwxr-xr-x 1 root root 20152 7月 7 2022 component_log_sink_syseventlog.so
-rwxr-xr-x 1 root root 41456 7月 7 2022 component_mysqlbackup.so
-rwxr-xr-x 1 root root 15704 7月 7 2022 component_query_attributes.so
-rwxr-xr-x 1 root root 42040 7月 7 2022 component_reference_cache.so
-rwxr-xr-x 1 root root 120944 7月 7 2022 component_validate_password.so
-rwxr-xr-x 1 root root 54760 7月 7 2022 connection_control.so
-rwxr-xr-x 1 root root 233304 7月 7 2022 ddl_rewriter.so
-rwxr-xr-x 1 root root 2919640 7月 7 2022 group_replication.so
-rwxr-xr-x 1 root root 46408 7月 7 2022 ha_example.so
-rwxr-xr-x 1 root root 57432 7月 7 2022 ha_mock.so
-rwxr-xr-x 1 root root 104456 7月 7 2022 innodb_engine.so
-rwxr-xr-x 1 root root 192120 7月 7 2022 keyring_file.so
-rwxr-xr-x 1 root root 24104 7月 7 2022 keyring_udf.so
-rwxr-xr-x 1 root root 240520 7月 7 2022 libmemcached.so
-rwxr-xr-x 1 root root 1299608 7月 7 2022 libpluginmecab.so
-rwxr-xr-x 1 root root 15056 7月 7 2022 locking_service.so
-rwxr-xr-x 1 root root 16008 7月 7 2022 mypluglib.so
-rwxr-xr-x 1 root root 239088 7月 7 2022 mysql_clone.so
-rwxr-xr-x 1 root root 15592 7月 7 2022 mysql_no_login.so
-rwxr-xr-x 1 root root 15640 7月 7 2022 rewrite_example.so
-rwxr-xr-x 1 root root 141792 7月 7 2022 rewriter.so
-rwxr-xr-x 1 root root 93584 7月 7 2022 semisync_master.so
-rwxr-xr-x 1 root root 37464 7月 7 2022 semisync_replica.so
-rwxr-xr-x 1 root root 37496 7月 7 2022 semisync_slave.so
-rwxr-xr-x 1 root root 93544 7月 7 2022 semisync_source.so
-rwxr-xr-x 1 root root 108728 7月 7 2022 validate_password.so
-rwxr-xr-x 1 root root 49736 7月 7 2022 version_token.so
安装
1.INSTALL COMPONENT 'file://component_validate_password';
2.INSTALL PLUGIN validate_password SONAME 'validate_password.so'; #linux中是so文件,windows中是dll文件
卸载
1.UNINSTALL COMPONENT 'file://component_validate_password';
2.UNINSTALL PLUGIN validate_password;
mysql> SHOW VARIABLES LIKE '%validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
validate_password_length:密码最小长度。
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count:密码至少要包含的数字个数。
validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count:密码至少要包含的特殊字符数。
其中,关于validate_password_policy-密码强度检查等级:
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
1 set global validate_password.policy=0; #设置密码强度
2 set global validate_password.length=1; #设置密码长度,重启MySQL后失效
my.cnf永久配置密码强度
[mysqld]
....
plugin-load=validate_password.so
validate_password_policy=0
validate_password.length=1
validate-password=FORCE_PLUS_PERMANENT
....
设置简单密码
进入mysql数据库卸载validate_password 组件
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.00 sec)
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
创建用户赋予权限
mysql> create user 'lc'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to lc;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)