centos7 下安装mysql.rpm

一、安装新版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  //禁用开机启动

成功。。。。。。。。。。。。。。。

相关文章
相关标签/搜索