CentOS 7 安装 MySQL 5.7
一、下载地址
官网下载地址:http://dev.mysql.com/downloads/mysql/

二、拷贝&解压缩
注意: 我自己本人使用版本是 mysql 5.7.16 但是目前官网上的 GA 版 mysql 是 5.7.32 版,两个版本安装都一样,版本选择根据自己来决定。这里以5.7.16版为演示。

三、检查工作
1、检查当前系统是否安装过 mysql
1  | rpm -qa|grep mariadb  | 
==如果存在如下:==

请执行以下卸载命令:
1  | rpm -e --nodeps mariadb-libs  | 
2、检查当前 mysql 依赖环境
==执行安装命令前,先执行查询命令==
1  | rpm -qa|grep libaio  | 
如果存在 libaio 包如下:

如果不存在请参考博客目录: 十一、Bug 有解决方案
==在执行命令:==
1  | rpm -qa|grep net-tools  | 
如果存在 net-tools 包如下:

如果不存在需要到 centos 安装盘里进行 rpm 安装
三、安装
1、通过 Xftp 工具把在下载好文件发送到 Linux 的 opt 目录下

2、在 mysql 的安装目录下执行:==(必须按照顺序执行)==
1  | rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm  | 

==注意:==如在检查工作时,没有检查 mysql 依赖环境在安装 mysql-community-server 会报错
四、查看 MySQL 安装版本
执行以下命令:
1  | mysqladmin --version  | 

五、MySQL 服务的初始化
为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
1  | mysqld --initialize --user=mysql  | 
注意:另外 –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码。
查看密码:
1  | cat /var/log/mysqld.log  | 

==root@localhost: 后面就是初始化的密码==
六、MySQL 服务的启与停
启动:systemctl start mysqld.service

关闭:systemctl stop mysqld.service

七、首次登陆
首次登陆通过 mysql -uroot -p进行登录,在 Enter password:录入初始化密码

因为初始化密码默认是过期的,所以查看数据库会报错

修改密码:
1  | ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';  | 

设置完密码就可以用新密码登陆,正常使用数据库了 !!!
八、自启动 mysql 服务
查看 mysql 是否自启动(默认自启动)
1  | systemctl list-unit-files|grep mysqld.service  | 

==注意:==如不是 enabled 可以运行如下命令设置自启动
1  | systemctl enable mysqld.sercice  | 
九、修改字符集问题
问题:mysql5.7 直接插入中文数据报错。
可以使用以下方法解决问题
- 修改配置文件
 
1  | vim /etc/my.cnf  | 
在最后加上中文字符集配置: character_set_server=utf8

- 重新启动 mysql
 
1  | systemctl restart mysqld  | 
==扩展:==已生成的库表字符集如何变更
- 修改数据库的字符集
 
1  | mysql> alter database mydb character set 'utf8';  | 
- 修改数据表的字符集
 
1  | mysql> alter table mytbl convert to character set 'utf8';  | 
到此,Linux 上的 MySQL 数据库就安装完成了
十、远程工具连接 MySQL 数据库
授予权限
先使用 mysql -uroot -p 进入数据库:
1  | grant all privileges on *.* to root@'%' identified by 'password';  | 

授予通过网络方式登录的的 root 用户 ,对所有库所有表的全部权限,密码设为 6090.
远程连接
- 先 ping 一下数据库服务器的 ip 地址确认网络畅通。
 - 关闭数据库服务的防火墙
 
补充:==(根据自己情况来选择)==
1  | // 查看当前防火墙状态如果防火墙处于开启状态,firewalld.service前面的点是高亮的,Active:active(开启))  | 
演示使用命令:
1  | systemctl stop firewalld.service  | 
- 使用 Navicat 连接
 

连接成功:
如果使用的是云服务(阿里云、腾讯云等)记得去安全组里面配置规则,开放 3306 端口。

十一、Bug
使用阿里云服务器安装时,缺少
libaio依赖
- 执行 rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 报错
 
1  | error: Failed dependencies:  | 
 
原因分析:缺少依赖
解决方式:
1  | # 执行以下,就可以解决  | 
参考:http://www.blogjava.net/amigoxie/archive/2013/02/22/395605.html
==如果对你有帮助的话,请给我点个赞,写作不易,谢谢!!!!==











