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
==如果对你有帮助的话,请给我点个赞,写作不易,谢谢!!!!==