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
代码语言:javascript复制rpm -qa|grep mariadb
==如果存在如下:==
请执行以下卸载命令:
代码语言:javascript复制rpm -e --nodeps mariadb-libs
2、检查当前 mysql 依赖环境
==执行安装命令前,先执行查询命令==
代码语言:javascript复制rpm -qa|grep libaio
如果存在 libaio 包如下:
如果不存在请参考博客目录: 十一、Bug
有解决方案
==在执行命令:==
代码语言:javascript复制rpm -qa|grep net-tools
如果存在 net-tools 包如下:
如果不存在需要到 centos 安装盘里进行 rpm 安装
三、安装
1、通过 Xftp 工具把在下载好文件发送到 Linux 的 opt 目录下
2、在 mysql 的安装目录下执行:==(必须按照顺序执行)==
代码语言:javascript复制rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
==注意:==如在检查工作时,没有检查 mysql 依赖环境在安装 mysql-community-server 会报错
四、查看 MySQL 安装版本
执行以下命令:
代码语言:javascript复制mysqladmin --version
五、MySQL 服务的初始化
代码语言:javascript复制为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql
注意:另外 –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码。
查看密码:
代码语言:javascript复制cat /var/log/mysqld.log
==root@localhost: 后面就是初始化的密码==
六、MySQL 服务的启与停
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
七、首次登陆
首次登陆通过 mysql -uroot -p进行登录,在 Enter password:录入初始化密码
因为初始化密码默认是过期的,所以查看数据库会报错
代码语言:javascript复制修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
设置完密码就可以用新密码登陆,正常使用数据库了 !!!
八、自启动 mysql 服务
代码语言:javascript复制查看 mysql 是否自启动(默认自启动)
systemctl list-unit-files|grep mysqld.service
==注意:==如不是 enabled 可以运行如下命令设置自启动
代码语言:javascript复制systemctl enable mysqld.sercice
九、修改字符集问题
问题:mysql5.7 直接插入中文数据报错。 可以使用以下方法解决问题
- 修改配置文件
vim /etc/my.cnf
在最后加上中文字符集配置: character_set_server=utf8
- 重新启动 mysql
systemctl restart mysqld
==扩展:==已生成的库表字符集如何变更
- 修改数据库的字符集
mysql> alter database mydb character set 'utf8';
- 修改数据表的字符集
mysql> alter table mytbl convert to character set 'utf8';
到此,Linux 上的 MySQL 数据库就安装完成了
十、远程工具连接 MySQL 数据库
授予权限
先使用 mysql -uroot -p
进入数据库:
grant all privileges on *.* to root@'%' identified by 'password';
授予通过网络方式登录的的 root 用户 ,对所有库所有表的全部权限,密码设为 6090.
远程连接
- 先 ping 一下数据库服务器的 ip 地址确认网络畅通。
- 关闭数据库服务的防火墙
补充:==(根据自己情况来选择)==
代码语言:javascript复制// 查看当前防火墙状态如果防火墙处于开启状态,firewalld.service前面的点是高亮的,Active:active(开启))
systemctl status firewalld.service
//关闭当前的防火墙(仅对本次开机有效,重启后防火墙会再次启用)
systemctl stop firewalld.service
//永久关闭防火墙(重启后防火墙依然关闭)
systemctl disable firewalld.service
// 启动防火墙
systemctl start firewalld
演示使用命令:
代码语言:javascript复制systemctl stop firewalld.service
- 使用 Navicat 连接
连接成功:
如果使用的是云服务(阿里云、腾讯云等)记得去安全组里面配置规则,开放 3306 端口。
十一、Bug
使用阿里云服务器安装时,缺少
libaio
依赖
- 执行 rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 报错
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
原因分析:缺少依赖
解决方式:
代码语言:javascript复制# 执行以下,就可以解决
yum install libaio
参考:http://www.blogjava.net/amigoxie/archive/2013/02/22/395605.html
==如果对你有帮助的话,请给我点个赞,写作不易,谢谢!!!!==