前情提要:要在CentOS7服务器上部署项目,又因为服务器不能联网,所以无法安装docker以及使用docker拉镜像安装mysql,所以要学习一下通过安装包手动安装mysql。 本教程的参考文献:Codesheep
1. 准备安装包
常用的版本为5.7 或8.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
通过命令,一个个卸载
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]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
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的图片说明: 这个密码要记住,首次登录需要
8.复制启动脚本到资源?录
在/usr/local/mysql 文件夹下:
cp ./support-files/mysql.server /etc/init.d/mysqld
并修改 /etc/init.d/mysqld ,修改其 basedir 和 datadir 为实际对应?录:
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的图片 这样就表明 mysqld 服务已经生效了,在2、3、4、5运?级别随系统启动??动启动,以后可以直接使? service 命令控制 mysql 的启停。
10.启动MYSQLD
在/usr/local/mysql 文件夹下直接执?
service mysqld start
11. mysql 的 bin 目录加? PATH 环境变量
这样?便以后在任意目录上都可以使用 mysql 提供的命令。 编辑 ~/.bash_profile ?件,在?件末尾处追加如下信息:
export PATH=$PATH:/usr/local/mysql/bin
最后执行如下命令使环境变量生效:
source ~/.bash_profile
12.首次登陆MYSQL
以 root 账户登录 mysql ,使用上文安装完成提示的密码进?登?
mysql -u root -p
13.修改ROOT账户密码
在mysql的命令?执?如下命令即可,密码可以换成你想?的密码即可:
mysql>alter user user() identified by "111111";
mysql>flush privileges;
?如这?将密码设置成简单的“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
|