centos 7 linux系统安装 mysql5.7.17(glibc版)
经过一天半的折腾,终于把 mysql 5.7.17 版本安装上了 centos 7 系统上,总结一下安装过程以及大部分可能犯错的地方,分享给大家。
安装前的检查
-
检查 linux 系统版本 [root@localhost ~]# cat /etc/system-release
-
检查是否安装了mysql [root@localhost ~]# rpm -qa | grep mysql
若存在 mysql 安装文件,则会显示 mysql安装的版本信息
如:mysql-connector-odbc-5.2.5-6.el7.x86_64
卸载已安装的MySQL,卸载mysql命令,如下:
[root@localhost ~]# rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64 -
查看mysql相关文件夹并进行删除 [root@localhost ~]# find / -name mysql
3.1注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf -
再次查找机器是否安装mysql rpm -qa|grep -i mysql 无结果,说明已经卸载彻底
开始安装MySQL
-
从官方下载MySQL5.7.17
5.1网址:添加链接描述
-
或者使用wget命令在linux系统里下载,个人推荐使用,因为下载的比较快
6.1:安装wget命令:yum install wget -y6.2:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz (本人下载到/opt/目录下)
-
下载完成后解压安装包
[root@localhost pub]# tar -zvxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
将文件移动到 /usr/local 目录下,并重命名文件夹:[root@localhost pub]# mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/ -
添加系统用户
添加 mysql 组和 mysql 用户:
添加 mysql 组:[root@localhost ~]# groupadd mysql
添加 mysql 用户:[root@localhost ~]# useradd -r -g mysql mysql -
进入安装 mysql 软件目录:[root@localhost ~]# cd /usr/local/mysql/
9.1安装配置文件:[root@localhost mysql]# cp ./support-files/my-default.cnf /etc/my.cnf(提示是否覆盖,输入“ y ”同意)
9.2修改被覆盖后的 my.cnf:[root@localhost mysql]# vim /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
-
创建 data 文件夹:[root@localhost mysql]# mkdir ./data
-
修改当前目录拥有者为 mysql 用户:[root@localhost mysql]# chown -R mysql:mysql ./
-
初始化密码并且保存
初始化 mysqld:[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
配置 mysql
- 环境变量配置
A.将mysql的bin目录加入PATH环境变量,编辑 /etc/profile文件:[root@localhost mysql]# vim /etc/profile
在文件最后
PATH = $PATH:/usr/local/mysql/bin
export PATH
执行命令使其生效:[root@localhost mysql]# source /etc/profile
用 export 命令查看PATH值:[root@localhost mysql]# echo $PATH
- 设置开机启动
a. 复制启动脚本到资源目录:[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
b. 增加 mysqld 服务控制脚本执行权限:[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
c. 将 mysqld 服务加入到系统服务:[root@localhost mysql]# chkconfig --add mysqld
d. 检查mysqld服务是否已经生效:[root@localhost mysql]# chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用 service 命令控制 mysql 的启动和停止。
查看启动项:chkconfig --list | grep -i mysql
删除启动项:chkconfig --del mysql
e. 启动 mysqld:[root@localhost mysql]# service mysqld start
-
启动如果出现一下错误
说明“var/lib/mysql”目录不存在,首要先创建:
mkdir /var/lib/mysql
设置权限
chmod 777 /var/lib/mysql
再次启动就可以了 -
登陆mysql mysql -uroot -p之前初始化保存的密码
如果输入命令报这个错
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的
是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
ln -s /usr/local/mysql/bin/mysql /usr/bin -
再次登陆
mysql -uroot -p初始化密码
成功
A登陆后修改密码输入命令 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’;
B1.4.2.8. 修改mysql远程访问权限mysql>use mysql
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>flush privileges;
mysql>select host, user from user;
最后防火墙设置
[root@localhost ~]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]$ firewall-cmd --reload
有什么地方不对,评论提醒我,我加以改正,谢谢!!!!!!!!!!!!!!