MySQL 8.0.11安装配置
MySQL 8.0.11安装配置
官网地址: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-8.0.11-linux-glibc2.12-x86_64.tar.gz来安装,这种安装方式无需考虑包兼容性,本文只描述rpm安装方式。
|
1
|
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar |
如果上述链接失效,一般是因为官网已经更新了新版本,找到最新版本的版本号修改下载即可。
一、mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar解压后有如下7个文件:
|
1
2
3
4
5
6
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 |
然后创建mysql用户:
|
1
2
|
useradd mysqlpasswd mysql |
二、安装顺序为:(强烈建议装之前先把之前的或自带的mysql相关包全部卸载,rpm -e --nodeps <包名>即可)
|
1
2
3
4
5
6
|
rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpm \mysql-community-libs-8.0.11-1.el6.x86_64.rpm \mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm \mysql-community-client-8.0.11-1.el6.x86_64.rpm \mysql-community-server-8.0.11-1.el6.x86_64.rpm \mysql-community-devel-8.0.11-1.el6.x86_64.rpm |
三、安装完毕后相关信息如下:
|
1
2
3
4
5
6
|
[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 |
默认的datadir是在/var/lib/mysql/,可以通过修改my.cnf修改,启动命令如下:
|
1
2
3
|
[root@python ~]# service mysqld startInitializing MySQL database: [ OK ]Starting mysqld: [ OK ] |
四、使用默认密码登录MySQL
在安装完后,/var/log/mysqld.log里应该含有临时的root密码,可以直接登录,你可以将此root密码更改为自己更熟悉的密码。
|
1
2
|
mysql> alter user root@'localhost' identified by 'mysql';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements |
这里存在密码复杂度要求(在Windows平台使用msi安装mysql时,则有自主选择密码认证方式的步骤,可以比较方便的进行设置。):
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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 |+----------------------------------------------+-----------------+ |
于是设置为0,然后将validate_password.length设置为4,表示最少需要4字符。之所以设置为4是因为这个参数的值不能小于如下公式的计算结果:
|
1
2
3
|
validate_password.number_count+ validate_password.special_char_count+ (2 * validate_password.mixed_case_count) |
五、建一个测试用户leo,尝试远程连接下吧:
|
1
2
3
|
$ 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 |
我这5.7的mysql工具都连不上,这就尴尬了,查看认证相关参数:
|
1
2
3
4
5
6
7
|
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时密码的默认加密算法,这意味着低版本的mysql工具基本连不上8.0,简单起见我们直接使用以前的加密算法。
|
1
2
3
4
5
6
7
8
9
10
|
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 |+------------------+-----------+-----------------------+ |
在my.cnf里添加:default_authentication_plugin=mysql_native_password,然后service mysqld restart重启服务,以下只演示leo用户的创建:
|
1
2
3
4
5
6
7
8
|
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) |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$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> |
至此远程连接正常。

浙公网安备 33010602011771号