Linux Centos7下安装mysql5.7(亲测好用)

在安装之前需要先把本地的mysql给卸载的话,可以查看我的上一篇博客
linux彻底卸载mysql

Mysql下载地址
在这里插入图片描述

1、安装依赖

$ yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel
$ cd /usr/local/src
$ tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

将解压的复制到 /usr/local/mysql 目录
$ cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

2、添加系统mysql组和mysql用户

先检查mysql组和用户是否存在,如无则创建
$ cat /etc/group | grep mysql
$ cat /etc/passwd | grep mysql

添加系统mysql组和mysql用户
添加系统mysql组
$ groupadd mysql

添加mysql用户(添加完成后可用id mysql查看)
$ useradd -r -g mysql mysql

3、安装数据库

切到mysql目录
$ cd /usr/local/mysql

修改当前目录拥有者为mysql用户
$ chown -R mysql:mysql ./

安装数据库
$ bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
在这里插入图片描述

如果报这个错bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:
$ yum install -y libaio //安装后在初始化就OK了

执行以下命令创建RSA private key
$ bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
在这里插入图片描述

修改当前目录拥有者为mysql用户
$ chown -R mysql:mysql ./

修改当前data目录拥有者为mysql用户
$ chown -R mysql:mysql data

4、配置my.cnf

$ vim /etc/my.cnf //直接把下面内容复制上就行

[mysqld]
# 服务端使用的字符集
character_set_server=utf8
init_connect='SET NAMES utf8'
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

添加开机启动
$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

修改mysqld
$ vim /etc/init.d/mysqld

添加路径 在46行

 basedir=/usr/local/mysql 
 datadir=/usr/local/mysql/data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nmpOTbx9-1581058511557)(en-resource://database/3652:1)

5、启动mysql

$ service mysqld start

加入开机启动
$ chkconfig --add mysqld

6、登录修改密码&添加远程访问权限

$ mysql -uroot -p 上面初始化时的密码

如果出现错误 需要添加软连接,这是为了能够在任何目录下都可以登录mysql
$ ln -s /usr/local/mysql/bin/mysql /usr/bin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XZh911dX-1581058511558)(en-resource://database/3654:1)]


第一件事是先修改密码:
将localhost主机的root账户的密码改为123456

alter user ‘root’@‘localhost’ identified by ‘123456’;


刷新权限

flush privileges;


第二件事是授权新用户,表示任意主机都能够通过root用户进行访问。
在这里插入图片描述
注意:
如果不授权新用户的话,通过
select user,host from mysql.user
可看到下图结果,第一个是之前加错的,别管他。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTRlRTz6-1581058511559)(en-resource://database/3656:1)]

这时我们通过windows是无法访问linux的mysql的,这个跟防火墙无关。想要windows能够访问linux的mysql就必须进行授权,我是理解成user,host的关系是哪些host可以访问这些user。host为%表示任意的主机都能够进行访问。
授权root新用户后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lAweyU1z-1581058511559)(en-resource://database/3660:1)]

需要要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。


至此安装完毕


7、开启外部访问数据库

开放防火墙端口
$ firewall-cmd --list-all

开放3306端口
$ firewall-cmd --permanent --add-port=3306/tcp

查看3306端口是否开放
$ firewall-cmd --query-port=3306/tcp

再次查看现在防火墙
$ firewall-cmd --list-all

参考文献:

linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解

mysql远程连接问题 Access denied for user ‘root’@‘192.168.1.13’ (using password: YES)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值