Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)

前情提要:要在CentOS7服务器上部署项目,又因为服务器不能联网,所以无法安装docker以及使用docker拉镜像安装mysql,所以要学习一下通过安装包手动安装mysql。
本教程的参考文献:Codesheep

1. 准备安装包

常用的版本为5.78.0(这里有坑后续说,尽量下载自己在win环境中项目常用的版本,否则在linux服务器上会有高低版本不适配的bug出现)
这里下载的是 mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 安装包,放在linux中的/usr/local/目录下

2.卸载系统自带的MARIADB(如果有)

如果系统之前自带 Mariadb ,要先卸载。首先查询已安装的 Mariadb 安装包:

rpm -qa|grep mariadb

Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第1张图片
通过命令,一个个卸载

yum -y remove mariadb-server-5.5.56-2.el7.x86_64
yum -y remove mariadb-5.5.56-2.el7.x86_64
yum -y remove mariadb-devel-5.5.56-2.el7.x86_64
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64

3.解压mysql安装包

/usr/local目录下,解压mysql安装包

tar -zxvf /root/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

使用此命令解压之后,会在/usr/local目录下,生成一个新文件夹,名字叫mysql-5.7.36-linux-glibc2.12-x86_64,名字太长,我们将其改名为mysql。改名的命令:

mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql

改完名之后,/usr/local下就有一个名字叫mysql的文件夹,里面是mysql的各种文件。

如果你的安装包不在你想解压的路径下,可以只用-C命令将器解压到你想要的目录下:

tar -zxvf /root/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C
/usr/local/

4.创建Mysql用户和用户组

groupadd mysql
useradd -g mysql mysql

同时新建 /usr/local/mysql/data ⽬录,后续备用

5.修改MYSQL⽬录的归属⽤户

/usr/local/mysql文件夹下:

chown -R mysql:mysql ./

6.准备MYSQL的配置⽂件

/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_names=1
max_allowed_packet=16M

同时使⽤如下命令创建 /var/lib/mysql ⽬录,并修改权限:

mkdir /var/lib/mysql
chmod 777 /var/lib/mysql

7. 正式开始安装MYSQL

执⾏如下两条命令正式开始安装:

cd /usr/local/mysql

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --
datadir=/usr/local/mysql/data

此处借用codesheep的图片说明:
Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第2张图片
这个密码要记住,首次登录需要

8.复制启动脚本到资源⽬录

/usr/local/mysql文件夹下:

cp ./support-files/mysql.server /etc/init.d/mysqld

并修改 /etc/init.d/mysqld ,修改其 basedirdatadir 为实际对应⽬录:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

9.设置MYSQL系统服务并开启⾃启

⾸先增加 mysqld 服务控制脚本执⾏权限:

chmod +x /etc/init.d/mysqld

同时将 mysqld 服务加⼊到系统服务:

chkconfig --add mysqld

最后检查 mysqld 服务是否已经⽣效即可:

chkconfig --list mysqld

再次借用codesheep的图片
Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第3张图片这样就表明 mysqld 服务已经生效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使⽤ service 命令控制 mysql 的启停。

10.启动MYSQLD

/usr/local/mysql文件夹下直接执⾏

service mysqld start

Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第4张图片

11. mysql 的 bin 目录加⼊ PATH 环境变量

这样⽅便以后在任意目录上都可以使用 mysql 提供的命令。
编辑 ~/.bash_profile ⽂件,在⽂件末尾处追加如下信息:

export PATH=$PATH:/usr/local/mysql/bin

Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第5张图片
最后执行如下命令使环境变量生效:

source ~/.bash_profile

12.首次登陆MYSQL

root 账户登录 mysql ,使用上文安装完成提示的密码进⾏登⼊

mysql -u root -p

Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第6张图片

13.修改ROOT账户密码

在mysql的命令⾏执⾏如下命令即可,密码可以换成你想⽤的密码即可:

mysql>alter user user() identified by "111111";
mysql>flush privileges;

Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)_第7张图片
⽐如这⾥将密码设置成简单的“111111”了。

14.设置远程主机登录

mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;

15.利用navicat等工具进行连接测试

16. 注意:踩坑点

如果服务器无法联网,也不能使用可视化工具例如navicat,我们将win中mysql8.0的的结构与数据通过navicat导出,若直接将导出的命令粘贴到Linux中5.7mysql的命令行中,会报
[ERR] 1273 -Unknown collation: ‘utf8mb4_0900_ai_ci‘错误
原因:生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.6,因为是高版本导入到低版本,引起1273错误
解决方案: 打开sql文件,将文件中的所有
utf8mb4_0900_ai_ci替换为utf8_general_ci
utf8mb4替换为utf8

你可能感兴趣的:(环境配置,linux,mysql)