概述
前情提要:要在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]
# 设置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的图片说明:
这个密码要记住,首次登录需要
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
最后
以上就是美满项链为你收集整理的Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)的全部内容,希望文章能够帮你解决Linux手动安装Mysql教程(踩坑实录,良心完整版手把手教学)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复