CentOS安装mysql8

1. 下载相应版本的mysql包   

  下载mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar

2. 解压tar包

[root@VM_18_112_centos ~]# tar -xvf mysql-8.0.12-1.el7.x86_64.rpm-bundle.tar

mysql-community-common-8.0.12-1.el7.x86_64.rpm

mysql-community-libs-compat-8.0.12-1.el7.x86_64.rpm

mysql-community-embedded-compat-8.0.12-1.el7.x86_64.rpm

mysql-community-server-8.0.12-1.el7.x86_64.rpm

mysql-community-server-minimal-8.0.12-1.el7.x86_64.rpm

mysql-community-libs-8.0.12-1.el7.x86_64.rpm

mysql-community-client-8.0.12-1.el7.x86_64.rpm

mysql-community-devel-8.0.12-1.el7.x86_64.rpm

mysql-community-test-8.0.12-1.el7.x86_64.rpm

mysql-community-minimal-debuginfo-8.0.12-1.el7.x86_64.rpm

3. 添加msql用户组和用户

      groupadd mysql

      useradd -r -g mysql -s /bin/false mysql

 注:groupadduseradd的语法或名称在不同版本的Unix系统上可能略有不同,但在CentOS6.5中应进行如上操作。上述操作只是为了获得系统的所有权,而不是以登录为目的;使用useradd命令和-r-s /bin/false选项来创建一个没有登录权限的用户。

4. 卸载旧版本的MySql(没有的话,则跳过此步骤)(未实践)

      (1) 查看旧版本MySql

      rpm -qa | grep mysql

      将会列出旧版本MySql的组件列表,如:

      https://images2018.cnblogs.com/blog/647994/201712/647994-20171203112657897-1624391304.png

      我的电脑这里只显示一个,有可能会有多个。

      (2) 逐个删除掉旧的组件

      使用命令rpm -e --nodeps {-file-name}进行移除操作,移除的时候可能会有依赖,要注意一定的顺序。

      https://images2018.cnblogs.com/blog/647994/201712/647994-20171203112945960-304424443.png

      第一次没有删除成功是因为最后多了一个空格。

5. 使用rpm命令安装MySql组件

注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验

依赖顺序主要按照如下顺序:

rpm -ivh mysql-community-common-8.0.12-1.el7.x86_64.rpm

rpm -ivh mysql-community-embedded-compat-8.0.12-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.12-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-8.0.12-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.12-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.12-1.el7.x86_64.rpm

 

在新系统安装时,可能因为缺少依赖而显示如下错误

(1)

[root@VM_18_112_centos ~]# rpm -ivh mysql-community-libs-8.0.12-1.el7.x86_64.rpm

warning: mysql-community-libs-8.0.12-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed dependencies:

        mariadb-libs is obsoleted by mysql-community-libs-8.0.12-1.el7.x86_64

如上的报错,由于centos 7默认是mariadb数据库,再去安装mysql之前要先卸载mariadb

[root@VM_18_112_centos ~]# rpm -qa | grep mariadb

mariadb-libs-5.5.56-2.el7.x86_064

[root@VM_18_112_centos ~]# rpm -e mariadb-libs-5.5.56-2.el7.x86_064

error: Failed dependencies:

        libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

        libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

以上报错是由于存在依赖关系,因此强制卸载

[root@VM_18_112_centos ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_064

(2)

[root@VM_18_112_centos ~]# rpm -ivh mysql-community-server-8.0.12-1.el7.x86_64.rpm

warning: mysql-community-server-8.0.12-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed dependencies:

        libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.12-1.el7.x86_64

        libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.12-1.el7.x86_64

        libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.12-1.el7.x86_64

如上报错是缺少一个依赖

下载地址:

http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

 

[root@VM_18_112_centos~]#wget http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

[root@VM_18_112_centos ~]#  rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

 

6. 查看mysql服务的状态

[root@VM_18_112_centos ~]# systemctl status mysqld.service

● mysqld.service - MySQL Server

   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

   Active: inactive (dead)

   Docs: man:mysqld(8)

           http://dev.mysql.com/doc/refman/en/using-systemd.html

7. 启动mysql服务

[root@VM_18_112_centos ~]# service mysqld start

Redirecting to /bin/systemctl start mysqld.service

[root@VM_18_112_centos ~]# ps -ef | grep mysql

mysql    20657     1  6 09:05 ?        00:00:00 /usr/sbin/mysqld

root     20724 19330  0 09:06 pts/0    00:00:00 grep --color=auto mysql

 

或(未实践)

[root@seiang software]# systemctl start mysqld.service

[root@seiang software]#

[root@seiang software]# systemctl status mysqld.service

 

8. 第一次使用临时密码登录

[root@VM_18_112_centos ~]# grep 'temporary password' /var/log/mysqld.log

2018-08-16T01:05:51.150034Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pvk/%J%p2eOs

[root@VM_18_112_centos ~]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

如果是mysql6.5 则

[root@VM_18_112_centos mysqlFile]# cat /root/.mysql_secret

9. 更改root密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Metar506si';

更改密码时可能会报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements   是密码强度不够,默认要求长度限制,还必须有大小写字母数字以及特殊字符

修改密码验证规则:

(1) mysql>  set global validate_password_policy=0;

(2) mysql> set global validate_password_length=1;

有可能会报错ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'原因是mysql7和mysql8的属性名改了

通过查看 MySQL5.7 MySQL8.0 密码验证插件对比,可知两个版本中,变量名不一样。(*_password_policy *_password.policy --- 问题原因所在。

问题解决如下

1、分析: 可以看到,修改 policy length 的值,在MySQL5.7中好使,在MySQL8.0中无效。'validate_password_policy' 变量不存在。

2、解决: 先修改一个满足的密码 (如:Root_12root)。

补充: validate_password_policy 有以下取值:

 

Policy

Tests Performed

0 or LOW

Length

1 or MEDIUM

Length; numeric, lowercase/uppercase, and special characters

2 or STRONG

Length; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

3、密码修改后,可用命令查看 validate_password 密码验证插件是否安装。

        mysql> SHOW VARIABLES LIKE 'validate_password%';

4MySQL 5.7 查看密码验证插件:

 

5 MySQL 8.0 查看密码验证插件:

              

 

 

猜你喜欢

转载自blog.csdn.net/ZiHao_L/article/details/83583451