前言:最近网上翻阅了大量关于Linux安装部署MySQL的教程,在自己部署的时候总是存在一些小问题,例如:版本冲突,配置失败和启动失败等等,功夫不负有心人,最后还是安装部署成功了,所以本篇博客记录了我是如何完整一步步的安装部署MySQL起来的,每一行代码都进行了严格的测试,其中的坑博主已经替大家全部踩完了,完整详细的步骤都在这篇博客中了,特此分享!
博主的其他部署教程:
Jenkins部署前后端分离项目:Jenkins部署前后端分离项目最全图文教程(手把手教学)
Docker部署前后端分离项目:手把手通过Docker部署前后端分离项目(亲测可用)
Linux系统部署Tomcat:Linux系统部署Tomcat详细教程(图文讲解)
Linux系统部署Nginx:Linux系统部署Nginx详细教程(图文讲解)
Linux系统配置Maven:Linux系统配置Maven环境详细教程(图文讲解)
Linux系统配置Node.js:Linux系统配置Node.js环境详细教程(图文讲解)
Linux系统安装部署Redis:Linux系统安装部署Redis完整教程(图文详解)
Linux系统安装部署MongoDB:Linux系统安装部署MongoDB完整教程(图文详解)
Linux系统安装部署Jenkins:Linux系统安装部署Jenkins详细教程(图文讲解)
宝塔面板部署前后端分离项目:手把手教学使用宝塔面板部署前后端分离项目(全面详细)
目录
这是官网:https://dev.mysql.com/downloads/mysql/5.7.html
进去以后,系统选择Linux - Generic,最后选择64位的点击Download
选择直接下载即可
注:这边之所以选择的是5.7版本,是因为之前选择了最新版部署总是存在初始化失败的问题,所以我还是选择了更加稳定的版本。
这边我把自己的华为云服务器预先重装了系统,就是为了一步步干净完整的阐述搭建流程。
在根目录下新建一个mysql文件夹(图方便)
mkdir mysql
进入该目录
cd /mysql
将下载好的压缩包上传到Linux服务器上(Xftp)
解压
tar zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
解压完成以后,重命名一下解压后的目录名称,实在是太长了
mv mysql-5.7.43-linux-glibc2.12-x86_64/ mysql-5.7
创建名为mysql的用户组
groupadd mysql
2、添加用户htt到mysql用户组
useradd -r -g mysql htt
进入到刚才解压的MySQL目录下
cd /mysql/mysql-5.7
创建一个名为data的目录
mkdir data
给用户组中的htt用户赋予data目录的权限
chown htt:mysql -R /mysql/mysql-5.7/data/
配置my.cnf文件
vim /etc/my.cnf
删除my.cnf文件中所有内容,复制如下内容
[mysqld]bind-address=0.0.0.0port=3306user=httbasedir=/mysql/mysql-5.7datadir=/mysql/mysql-5.7/datasocket=/tmp/mysql.socklog-error=/mysql/mysql-5.7/data/mysql.errpid-file=/mysql/mysql-5.7/data/mysql.pidmax_connections=10000max_user_connections=2000wait_timeout=200character_set_server=utf8mb4symbolic-links=0explicit_defaults_for_timestamp=truelower_case_table_names=1
命令详解
参数 | 解释 |
---|---|
bind-address=0.0.0.0 | 设置MySQL绑定监听的IP地址,0.0.0.0表示监听所有IP,允许远程连接。 |
port=3306 | 设置MySQL服务的端口号,默认是3306 |
user=htt | 指定运行mysqld进程的系统用户为htt |
basedir=/mysql/mysql-5.7 | 设置MySQL的安装基目录 |
datadir=/mysql/mysql-5.7/data | 设置MySQL的数据文件目录 |
socket=/tmp/mysql.sock | 设置本地连接时使用的Unix socket文件路径 |
log-error=/mysql/mysql-5.7/data/mysql.err | 设置错误日志文件路径 |
pid-file=/mysql/mysql-5.7/data/mysql.pid | 设置存放进程PID的文件路径 |
max_connections=10000 | 设置最大连接数,包括TCP和socket连接 |
max_user_connections=2000 | 设置单个用户最大并发连接数 |
wait_timeout=200 | 设置空闲连接超时时间,单位秒 |
character_set_server=utf8mb4 | 设置服务器默认字符集 |
symbolic-links=0 | 禁用symbolic link符号链接支持 |
explicit_defaults_for_timestamp | 设置timestamp列默认值声明方式 |
lower_case_table_names=1 | 表名区分大小写,设置为1表示不区分 |
注: 记得改成自己的目录
按i键进入编辑模式,粘贴进去
按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可
先进入安装目录的bin目录下
cd /mysql/mysql-5.7/bin
初始化MySQL的数据目录
./mysqld --defaults-file=/etc/my.cnf --basedir=/mysql/mysql-5.7 --datadir=/mysql/mysql-5.7/data --user=htt --initialize
命令详解
参数 | 详解 |
---|---|
./mysqld | 启动mysqld服务器程序 |
--defaults-file=/etc/my.cnf | 指定配置文件路径为/etc/my.cnf |
--basedir=/mysql/mysql-5.7 | 指定MySQL的安装目录 |
--datadir=/mysql/mysql-5.7/data | 指定数据目录路径 |
--user=htt | 以htt用户身份启动 |
--initialize | 初始化数据目录,创建必要的系统表等 |
执行以后控制台报了如下错误:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行如下命令,安装一下即可:
yum -y install libaio
再次执行刚才的命令,然后执行命令查看日志当中的初始密码
cat /mysql/mysql-5.7/data/mysql.err
红框是初始密码,一会登录MySQL会用到
NYURXh_Wx5o!
进入support-files目录下
cd /mysql/mysql-5.7/support-files
运行mysql.server来启动MySQL服务
sudo ./mysql.server start
启动成功!
进入MySQL的bin目录
cd /mysql/mysql-5.7/bin
登录MySQL
./mysql -u root -p
把刚才的NYURXh_Wx5o!粘贴进来,然后敲回车
这样就登录进来了!
修改初始密码为root
SET PASSWORD = PASSWORD('root');
将root用户的密码过期策略设置为永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新
FLUSH PRIVILEGES;
这样就可以了!
访问mysql库
use mysql
打开root用户的远程访问权限,允许任何主机使用root用户连接MySQL数据库
update user set host = '%' where user = 'root';
刷新
FLUSH PRIVILEGES;
这样就修改完成了!
我这边购买的是华为云服务器,需要在安全组放行MySQL的3306端口,否则无法访问!
输入服务器ip、端口号、账号和密码,连接成功!
这样就安装部署成功啦!
将MySQL的服务脚本创建一个符号链接到系统服务脚本目录下,文件名为mysql
ln -s /mysql/mysql-5.7/support-files/mysql.server /etc/init.d/mysql
命令详解
参数 | 解释 |
---|---|
ln -s | 创建一个符号链接 |
/mysql/mysql-5.7/support-files/mysql.server | MySQL数据库自带的服务脚本,用于控制MySQL服务器的启动和停止 |
/etc/init.d/mysql | 系统服务脚本存放的位置 |
将MySQL的客户端程序mysql创建一个符号链接到系统命令目录/usr/bin下
ln -s /mysql/mysql-5.7/bin/mysql /usr/bin/mysql
命令详解
参数 | 解释 |
---|---|
ln -s | 创建一个符号链接 |
/usr/bin/mysql | 在系统命令目录下创建mysql符号链接 |
/mysql/mysql-5.7/bin/mysql | MySQL客户端程序mysql的原始路径 |
重启MySQL
service mysql restart
给/etc/init.d/mysql文件添加可执行权限
chmod +x /etc/init.d/mysql
将mysql服务添加为开机自动启动的服务
chkconfig --add mysql
查看服务列表
chkconfig --list
2-5级别显示为on,表示开机自动启动
这样就设置好了!
以上就是对于如何使用Linux安装部署MySQL的完整过程了,如有问题,欢迎评论区讨论!
来源地址:https://blog.csdn.net/HJW_233/article/details/131849773