官网地址:https://dev.mysql.com/downloads/mysql/

我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bundle即可--mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar。

目前MySQL8.0.11社区版提供了多种多样的安装方式,但是并未发现针对Linux Generic安装包包含的mysql_secure_installation的安装说明。

因此这里使用推荐的RPM安装:

一、mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar解压后有如下7个文件:

-rw-r--r-- 1 root root 28987588 Apr 9 01:06 mysql-community-client-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root  672184 Apr 9 01:06 mysql-community-common-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root  4443296 Apr 9 01:06 mysql-community-devel-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root  2579460 Apr 9 01:06 mysql-community-libs-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root  1902676 Apr 9 01:06 mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root 395918848 Apr 9 01:07 mysql-community-server-8.0.11-1.el6.x86_64.rpm-rw-r--r-- 1 root root 49092596 Apr 9 01:07 mysql-community-test-8.0.11-1.el6.x86_64.rpm
useradd mysqlpasswd mysql
[root@python ~]# rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-common-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-common ########################################### [100%][root@python ~]# rpm -ivh mysql-community-libs-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-libs-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-libs  ########################################### [100%][root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  file /usr/lib64/mysql/libmysqlclient.so.16.0.0 from install of mysql-community-libs-compat-8.0.11-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-8.0.1.el6_8.x86_64  file /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 from install of mysql-community-libs-compat-8.0.11-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-8.0.1.el6_8.x86_64[root@python ~]# rpm -e --nodeps mysql-libs-5.1.73-8.0.1.el6_8.x86_64[root@python ~]# rpm -ivh mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-libs-co########################################### [100%][root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-server-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies:  mysql-community-client(x86-64) >= 8.0.0 is needed by mysql-community-server-8.0.11-1.el6.x86_64[root@python ~]# rpm -ivh mysql-community-client-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-client-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-client ########################################### [100%][root@python ~]# rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-server-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-server ########################################### [100%][root@python ~]# rpm -ivh mysql-community-devel-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-devel-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPreparing...        ########################################### [100%]  1:mysql-community-devel ########################################### [100%]^[[A[root@python ~]# rpm -ivh mysql-community-test-8.0.11-1.el6.x86_64.rpmwarning: mysql-community-test-8.0.11-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies:  perl(JSON) is needed by mysql-community-test-8.0.11-1.el6.x86_64--懒的去装perl了,因此测试套件就不装了。
[root@python ~]# mysql -Vmysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)[root@python ~]# ll /etc/init.d/mysqld-rwxr-xr-x 1 root root 7166 Apr 8 16:21 /etc/init.d/mysqld[root@python ~]# ll /etc/my.cnf --配置文件位置-rw-r--r-- 1 root root 1188 Apr 8 16:21 /etc/my.cnf
[root@python ~]# service mysqld startInitializing MySQL database:                [ OK ]Starting mysqld:  [ OK ]
mysql> alter user root@'localhost' identified by 'mysql';ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementmysql> exitBye
mysql> delete from mysql.user where user='root';Query OK, 1 row affected (0.10 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> create user root@'localhost' identified by 'mysql';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> show variables like '%pass%';+----------------------------------------------+-----------------+| Variable_name                | Value      |+----------------------------------------------+-----------------+| caching_sha2_password_auto_generate_rsa_keys | ON       || caching_sha2_password_private_key_path    | private_key.pem || caching_sha2_password_public_key_path    | public_key.pem || default_password_lifetime          | 0        || disconnect_on_expired_password        | ON       || mysql_native_password_proxy_users      | OFF       || password_history               | 0        || password_reuse_interval           | 0        || report_password               |         || sha256_password_auto_generate_rsa_keys    | ON       || sha256_password_private_key_path       | private_key.pem || sha256_password_proxy_users         | OFF       || sha256_password_public_key_path       | public_key.pem || 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        |+----------------------------------------------+-----------------+

发现此值有3个,如下所示:

于是设置为0,然后将validate_password.length设置为4,表示最少需要4字符。之所以设置为4是因为这个参数的值不能小于如下公式的计算结果:

validate_password.number_count+ validate_password.special_char_count+ (2 * validate_password.mixed_case_count)
mysql> create user root@'localhost' identified by 'mysql';ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)mysql> create user root@'localhost' identified by 'mysql';ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

于是去逛了一圈stackoverflow,都说这是一个BUG,于是操作如下:

mysql> drop user root@'localhost';  --是的没错,虽然没有root@'localhost'用户,但你还是要删一遍。Query OK, 0 rows affected (0.05 sec)mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.01 sec)mysql> create user root@'localhost' identified by 'mysql';Query OK, 0 rows affected (0.03 sec)mysql> grant all on *.* to root@'localhost' with grant option;Query OK, 0 rows affected (0.03 sec)

五、终于设置好密码了,建一个测试用户leo,然后尝试远程连接下吧:

$ mysql -uleo -pmysql -h192.168.1.193mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
mysql> show variables like '%auth%';+-------------------------------+-----------------------+| Variable_name         | Value         |+-------------------------------+-----------------------+| default_authentication_plugin | caching_sha2_password |+-------------------------------+-----------------------+1 row in set (0.02 sec)

官网还说此值影响create user不显式指定auth plugin时密码的默认加密算法,卧槽...那岂不是说我之前创建的leo用户使用的是默认的caching_sha2_password认证,查看一下:

mysql> select user,host,plugin from mysql.user;+------------------+-----------+-----------------------+| user       | host   | plugin        |+------------------+-----------+-----------------------+| leo       | %     | caching_sha2_password || mysql.infoschema | localhost | mysql_native_password || mysql.session  | localhost | mysql_native_password || mysql.sys    | localhost | mysql_native_password || root       | localhost | caching_sha2_password |+------------------+-----------+-----------------------+

显然不能直接update plugin,因为这可能导致加密的密码无法被正确解密,你所有的密码都会变异,因此除root@'localhost'外全部删掉重建。

首先需要在my.cnf里添加:default_authentication_plugin=mysql_native_password,然后service mysqld restart重启服务:

mysql> drop user leo;Query OK, 0 rows affected (0.10 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> create user leo identified by 'mysql';Query OK, 0 rows affected (0.02 sec)mysql> grant all on *.* to leo;Query OK, 0 rows affected (0.08 sec)$mysql -Vmysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper$ mysql -uleo -pmysql -h192.168.1.193mysql: [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 id is 16Server version: 8.0.11 MySQL Community Server - GPLCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

总结

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  3. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  4. Pycharm安装PyQt5的详细教程
  5. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  6. android用户界面之按钮(Button)教程实例汇
  7. 【Android(安卓)开发教程】Toast通知
  8. Android简易实战教程--第三十九话《Chronometer实现倒计时》
  9. android加密解密完美教程

随机推荐

  1. 【android】shape的使用
  2. Android性能检测--traceview工具各个参数
  3. android 右上角菜单无法显示
  4. a64_7.1android平板关于更改绘制矩形界面
  5. Android 中的 Service 全面总结
  6. android中去掉空格--trim函数
  7. Android避免启动时闪一下黑屏
  8. android:屏幕自适应
  9. Android 示例之 notepad
  10. Android中获得SD卡中的值