1、安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
[root@5201351 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.41-2.el7_0.x86_64
[root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
2、到mysql的官网下载最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
3、上传mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服务器,并解压tar包
4、其中最简单的安装mysql-server服务,只需要安装如下4个软件包即可,我们可以使用rpm -ivh命令进行安装,(注意安装顺序,如果不卸载mariadb-lib,此时安装会报错。)
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依赖于common)
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依赖于libs)
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依赖于client、common)
5、接下来是初始化数据库,我们使用如下几条命令均可,效果都是一样的
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必须指定datadir,执行后会生成~/.mysql_secret密码文件
[root@5201351 ~]# //mysqld --initialize //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
6、更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库,
(如果mysql没有指定用户组, "Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.")
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R
[root@5201351 ~]# systemctl start mysqld.service //启动mysql数据库服务
7、根据第5步中的密码登录到mysql,更改root用户的密码,新版的mysql在第一次登录后更改密码前是不能执行任何命令的
[root@5201351 ~]# mysql -uroot -p'j#uRig4yJ'
mysql> set password=password('123456');
8、最后我们还可以根据实际情况创建用户,及作权限分配
mysql> create user 'root'@'192.168.100.2' identified by 'QQ5201351';
mysql> GRANT ALL PRIVILEGES ON dbname.* to 'root'@'192.168.100.2';
mysql> flush privileges
9、mysql远程访问权限。
mysql> USE mysql; -- 切换到 mysql DB
mysql> SELECT User, Host FROM user; -- 查看现有用户,密码及允许连接的主机 (注:mysql7 没有password字段)
//1,授权方式,允许ROOT用户在任意IP连接数据库。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
//2,更改数据库,当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost' LIMIT 1;
10、配置防火墙
使用命令的方式配置CentOS7防火墙
##Add
firewall-cmd --permanent --zone=public --add-port=3306/tcp
##Remove
firewall-cmd --permanent --zone=public --remove-port=3306/tcp
##Reload
firewall-cmd --reload
检查是否生效
firewall-cmd --zone=public --query-port=33060/tcp
列出所有的开放端口
firewall-cmd --list-all
查看防火墙状态
systemctl status firewalld.service
启动防火墙
systemctl start firewalld.service
关闭防火墙
systemctl stop firewalld.service
重新启动防火墙
systemctl restart firewalld.service
11、配置开机自动启动。
systemctl enable mysqld.service //设置开机自动启动 systemctl status mysqld.service //查看状态
systemctl disable mysqld.servic //禁用开机启动
成功。