1、卸载系统自带的 mariadb-lib
rpm -qa|grep mariadb
##mariadb-libs-5.5.50-1.el7_2.x86_64
rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64 --nodeps
2、下载mysql 5.7.16-*.rpm-bundle.tar包并解压
tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
3、安装
依次执行(几个包有依赖关系,所以执行有先后)下面命令安装
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
在安装rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 的时候报错如下:
warning: mysql-community-server-5.7.16-1.el6.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-5.7.16-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.16-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.16-1.el6.x86_64
使用如下命令解决:
yum install libnuma*
如果报如下错误:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
net-tools is needed by mysql-community-server-5.7.16-1.el7.x86_64
使用如下命令解决:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
下载完之后,进行安装:
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
yum install net-tools
4、数据库初始化
为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql
如果是以 mysql 身份运行,则可以去掉 –user 选项。
另外 –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 –initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 –initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
cat /var/log/mysqld.log
现在启动mysql数据库systemctl start mysqld.service
systemctl start mysqld.service
mysql -uroot -p
5、修改密码
该密码被标记为过期了,如果想正常使用还需要修改密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';
同时,如果你设置的密码过于简单也会报错。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
6.防火墙配置远程访问
开放3306端口号
firewall-cmd --permanent --add-port=3306/tcp
重新加载防火墙
firewall-cmd --reload
查看防火墙配置,可以看出3306已经在例外了
firewall-cmd --list-all
public (default, active)
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ftp ssh
ports: 3306/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
注意
新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段。
如此,mysql就安装完毕了。