1.在官网下载Linux系统下的mysql软件包
我这里以mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar为例,用ftp工具把mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar上传到Linux系统下之前建立好的/u01/mysql目录下,用SSH命令工具登陆,并进入该目录:
cd /u01/mysql
2.卸载系统自带的 mariadb
rpm -qa|grep mariadb(查询命令,查询mariadb相关软件)
把查询出来的已安装mariadb软件进行卸载:
sudo rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
sudo rpm -e mariadb-server-5.5.52-1.el7.x86_64
sudo rpm -e mariadb-devel-5.5.52-1.el7.x86_64
sudo rpm -e mariadb-5.5.52-1.el7.x86_64
命令后半段来自上面查询出的结果,有多少结果就卸载多少软件。
3.卸载系统自带的旧版本MYSQL
rpm -qa|grep mysql(查询命令,查询旧版本MYSQL相关软件)
把查询出来的已安装MYSQL软件进行卸载:
sudo rpm -e qt5-qtbase-mysql-5.6.1-10.el7.x86_64
sudo rpm -e akonadi-mysql-1.9.2-4.el7.x86_64
sudo rpm -e qt-mysql-4.8.5-13.el7.x86_64
命令后半段来自上面查询出的结果,有多少结果就卸载多少软件。
4.解压上传的mysql软件:
tar -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
5.开始安装
依次执行(几个包有依赖关系,所以执行有先后)
sudo rpm -ivh --force mysql-community-common-5.7.33-1.el7.x86_64.rpm
sudo rpm -ivh --force mysql-community-libs-5.7.33-1.el7.x86_64.rpm --nodeps
sudo rpm -ivh --force mysql-community-client-5.7.33-1.el7.x86_64.rpm
sudo rpm -ivh --force mysql-community-server-5.7.33-1.el7.x86_64.rpm --nodeps
在安装mysql-community-server-5.7.21-1.el7.x86_64.rpm的时候,如果报错如下:
warning: mysql-community-server-5.7.21-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
net-tools is needed by mysql-community-server-5.7.16-1.el7.x86_64
这个报错的意思是需要安装libaio包和net-tools包:可以yum安装一下,安装 libaio-0.3.107-10.el6.x86_64.rpm,下载命令:
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安装net-tools:
yum install net-tools
完成之后就可以顺利安装。
6.数据库初始化
为了保证数据库目录为与文件的所有者为mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql
如果执行报错:
TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-02-05T23:32:59.973767Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-02-05T23:32:59.973798Z 0 [ERROR] Aborting
找到并删除mysql安装的data目录文件
cd /var/lib/mysql
rm -rf *
如果是以mysql 身份运行,则可以去掉 --user选项。另外 --initialize选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 --initialize初始化的,会生成一个 root 账户密码,密码在log文件里。
查看日文件,红色区域的就是自动生成的密码:
cat /var/log/mysqld.log
7.启动数据库:
systemctl start mysqld.service
8.重启后登陆,密码从上面找到
sudo service mysqld restart
mysql -u root -p
9.根据上面找的的密码登陆:
mysql -uroot -p
11.修改密码
初始密码会被标记为过期,如果想正常使用需要修改密码,登陆到mysql客户端后,输入如下命令:
alter user 'root'@'localhost' identified by 'root';
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
12.开放远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
13开放防火墙端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-port=80/tcp
14.远程访问测试