centos7 下安装mysql.rpm

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生成随机密码

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] Aborting

将这个数据目录删掉,或者重命名,如果数据比较重要,建议重命名,后期再重新导入就ok了 
我用的rpm包安装,默认数据目录在 
/var/lib/mysql/

我将它直接删掉

rm -fr /var/lib/mysql

 

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  //禁用开机启动

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

 

 

转载于:https://my.oschina.net/u/1867229/blog/977536

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值