一、安装新版mysql以前,咱们须要将系统自带的mariadb-lib卸载node
[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
二、到mysql的官网下载最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tarmysql
三、上传mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服务器,并解压tar包linux
四、其中最简单的安装mysql-server服务,只须要安装以下4个软件包便可,咱们能够使用rpm -ivh命令进行安装,(注意安装顺序,若是不卸载mariadb-lib,此时安装会报错。)sql
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)
五、接下来是初始化数据库,咱们使用以下几条命令都可,效果都是同样的数据库
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必须指定datadir,执行后会生成~/.mysql_secret密码文件 [root@5201351 ~]# //mysqld --initialize //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
mysql在进行初始化的时后,会检测数据目录是否存在,
如过不存在,mysql会建立它,
若是存在,并且这个目录里有数据,mysql会报错,而且终止初始化:服务器Initializing MySQL database: 2017-06-26T02:33:40.212541Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-06-26T02:33:40.215791Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-06-26T02:33:40.215877Z 0 [ERROR] Abortingtcp
将这个数据目录删掉,或者重命名,若是数据比较重要,建议重命名,后期再从新导入就ok了
我用的rpm包安装,默认数据目录在
/var/lib/mysql/ide我将它直接删掉spa
rm -fr /var/lib/mysql
六、更改mysql数据库目录的所属用户及其所属组,而后启动mysql数据库,rest
(若是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数据库服务
七、根据第5步中的密码登陆到mysql,更改root用户的密码,新版的mysql在第一次登陆后更改密码前是不能执行任何命令的
[root@5201351 ~]# mysql -uroot -p'j#uRig4yJ' mysql> set password=password('123456');
八、最后咱们还能够根据实际状况建立用户,及做权限分配
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 //禁用开机启动
成功。。。。。。。。。。。。。。。