linux-centos7 安装 mysql5.7.27 二进制包

目录

一:卸载,必须卸载干净,否则会被坑。特别是配置文件。不删干净可能会走原有配置,打乱安装过程

 二:安装


二进制包 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 的安装过程

一:卸载,必须卸载干净,否则会被坑。特别是配置文件。不删干净可能会走原有配置,打乱安装过程


具体流程就是 :    暂停服务 --> 查看 MySQL文件在哪些位置 --> 删除这些文件

1:检查 MySQL服务 并关闭服务进程。

[root@localhost local]# ps -ef | grep mysql                // 查看 mysql 服务的进程

[root@localhost local]# service mysqld status              // 查看 mysqld 服务的状态

[root@localhost local]# service mysqld stop                // 关闭 mysqld 服务

[root@localhost local]# service mysqld status              // 查看 mysqld 服务的状态

2:查找 MySQL组件和相关文件

[root@localhost local]# whereis mysql                  // 查询 mysql 服务位置

[root@localhost local]# find / -name mysql*          // 从 / 目录查询文件名称为 mysql* 的文件

[root@localhost local]# rm -rf $'上一步结果'          // 删除对应文件,我是手动一个个文件删的,不熟悉那个删除 find 结果集的命令

3:删除一些配置文件

配置文件一般有 /etc/my.cnf 或  /etc/init.d/mysql.server,视具体安装配置情况而定。

可以使用 find 命令查看文件位置,如 find / -name my.cnf

[root@localhost local]# /etc/my.cnf                    // 自有的 mysql 配置文件, 集群等个性化配置

[root@localhost local]# /etc/init.d/mysql.server       // mysql 服务启动脚本,用来配置开机启动

4:删除 MySQL 用户以及用户组(不太需要,之后新装的 MySQL 还要配置)

[root@localhost local]# id mysql

[root@localhost local]# userdel mysql

 二:安装


0:重要的事情说三遍!按 步骤一 删除干净,按 步骤一 删除干净,按 步骤一 删除干净。

1:进入压缩包存放目录

[root@localhost ~]# cd /usr/local

2:解压压缩包并删除

[root@localhost local]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

[root@localhost local]# rm -rf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

3:修改文件夹名字

将解压后的文件夹修改名字,文件夹名字改为 mysql

[root@localhost local]# mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mysql

4:检查并创建用户和用户组

[root@localhost local]# cat /etc/group | grep mysql

[root@localhost local]# cat /etc/passwd |grep mysql

[root@localhost local]# groupadd mysql

[root@localhost local]# useradd -r -g mysql mysql

5:创建 data 文件夹:某个版本之后就没有 data 文件夹了

[root@localhost local]# mkdir /usr/local/mysql/data

6:授权目录和用户

[root@localhost /]# cd /usr/local/

[root@localhost local]# chown -R mysql:mysql mysql/

[root@localhost local]# chmod -R 755 mysql/

7:安装并初始化

执行下面之前去 /etc/ 目录下查看是否有 my.cnf 配置文件,如果有,删除或者修改名字备份起来!不然会出现各种 PID 或者 SOCK 有关的问题

[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

执行完上面之后,检查是否有 Error,有的话及时解决。默认的错误文件日志在 data 目录中,有些错误很坑建议克隆一个虚拟机重新装(强烈推荐,如果你是运维别论)。

[root@localhost data]# tail -f error.log

最后一行会有默认生成的密码,记下来

A temporary password is generated for root@localhost: n2ta1yWih9-/

8:复制启动脚本到资源目录

[root@localhost local]# cd mysql

[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

提示是否覆盖的话,可能之前装过没删除,输入 y 覆盖。不过还是建议之前就删除干净。

9:增加 mysqld 服务控制脚本执行权限

[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld

10:将 mysqld 服务加入到系统服务

[root@localhost mysql]# chkconfig --add mysqld

11:检查 mysqld 服务是否已经生效

[root@localhost mysql]# chkconfig --list mysqld

mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

12:启动 MySQL

[root@localhost mysql]# service mysqld start

success!

显示 SUCCESS 的话,到这里就已经启动成功了

12.1:启动 MySQL 失败

提示找不到 mysql 命令的话,链接二进制执行目录

[root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin

13:登录 MySQL ,失败的话看查看报错原因,底下的原因是缺少文件目录

[root@localhost mysql]# service mysqld start

Starting MySQL.2019-07-18T07:41:24.268830Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists

The server quit without updating PID file (/var/lib/mysql/z[失败]pid).

[root@localhost mysql]# mkdir /var/lib/mysql

[root@localhost mysql]# service mysqld start

Starting MySQL.The server quit without updating PID file (/[失败]b/mysql/localhost.pid).

13.1:登录 mysql 失败

[root@localhost mysql]# mysql -uroot -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

失败信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

[root@localhost mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

然后返回13步继续登录

14:(在 mysql 命令行模式下)修改密码和允许多用户登录

[root@localhost mysql]# mysql -uroot -p默认密码登录

mysql> flush privileges;                                    // 刷新配置

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';  // 修改密码

mysql> update user set host='%' where user='root';          // 为了解决 Host 连接限制 "xxx.xxx.xxx.xxx" is not allowes to connect to this MySQL server.

mysql> flush privileges;                                    // 刷新配置

mysql> quit

15:配置 3306 端口

因为我使用的是 CentOS 7,使用 iptables 的版本是7以前的,CentOS 7 使用 firewall 作为防火墙。

输入命令 "  firewall-cmd --state " 如果出现如图所示的这种情况说明正在运行,如果没有正在运行需要执行命令" systemctl start firewalld "开启防火墙服务

查看已经开放的端口:firewall-cmd --list-ports

开启端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含义:

–zone                       #作用域

–add-port=3306/tcp            #添加端口,格式为:端口/通讯协议

–permanent                  #永久生效,没有此参数重启后失效

重启、停止、禁用、查看防火墙

firewall-cmd --reload                           #重启 firewall

systemctl stop firewalld.service                #停止 firewall

systemctl disable firewalld.service             #禁止 firewall 开机启动

firewall-cmd --state                            #查看默认防火墙状态(关闭后显示 notrunning,开启后显示 running)

因此结合上述命令来看,需要将 3306 端口添加到防火墙的开放端口中,然后重新载入防火墙的配置即可。如下:

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent    #配置完可以再次输入返回yes确保已经开启

firewall-cmd --add-service=http/ftp/ssh                     #开启服务

sudo firewall-cmd --reload

sudo firewall-cmd --list-ports

16:测试连接

本地使用 Navicat 连接测试,填写完点击连接测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章