当前位置: 代码迷 >> 综合 >> 【MySQL】CentOS7 MySQL 的部署和安装
  详细解决方案

【MySQL】CentOS7 MySQL 的部署和安装

热度:63   发布时间:2023-09-21 01:10:29.0

一、CentOS 下 安装 MYSQL

1.1 安装包下载

百度网盘分享: 

链接:https://pan.baidu.com/s/1X0kZfR8E_tl1pWzP7Xf4GA 

提取码:v510

 

官网下载:

https://dev.mysql.com/downloads/mysql/

选择通用的安装包,下载xz格式,并用xftp传到服务器的/usr/local目录

【MySQL】CentOS7 MySQL 的部署和安装

 

1.2 解压安装包

# 先将xz格式的文件解压,变为tar格式的文件
xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz# 将tar文件解压
tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar# 解压成功后,重命名文件夹为mysql
mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql  

1.3 mysql 配置

1.3.1 创建用户和用户组

groupadd mysql
useradd -r -g mysql mysql   # -r 建立系统账号  -g 指定用户所属的群组
# Linux 下面的每个程序都是要有用户帐号来运行的,一些对外提供服务的程序,为了安全做隔离,都会用非 root 帐号来运行,这些         非 root 帐号,专门用来跑程序的帐号,就是系统帐号

1.3.2 修改/etc/my.cnf配置文件

[mysqld]
lower_case_table_names=1 # 默认表格忽略大小写
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
symbolic-links=0[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/data/mysql.pid[client]
socket=/usr/local/mysql/mysql.sock

1.3.3 创建data文件夹和log文件夹

mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/logs
touch /usr/local/mysql/logs/error.log

1.3.4 赋予mysql这个系统账号权限,运行MySQL

chown  -R  mysql.mysql /usr/local/mysql 
chown  -R  mysql.mysql /etc/my.cnf
#chown将指定文件的拥有者改为指定的用户或组

1.3.5  安装数据库,并安装ssl

yum -y install numactlyum install -y libaio# 安装数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/# 安装ssl
/usr/local/mysql/bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/#未使用SSL,则在数据库服务器端可以通过抓包的方式获取数据,安全性不高

1.3.6 配置启动脚本

# 拷贝mysql.server到init.d下,当作启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# 修改启动脚本
sed -i '46c basedir=/usr/local/mysql' /etc/init.d/mysqld
sed -i '47c datadir=/usr/local/mysql/data' /etc/init.d/mysqld
sed -i '63c mysqld_pid_file_path=/usr/local/mysql/data/mysqld.pid' /etc/init.d/mysqld

1.3.7 启动数据库

/etc/init.d/mysqld start

  【MySQL】CentOS7 MySQL 的部署和安装

1.3.8 重置 root 密码

mysql -e "use mysql;alter user 'root'@'localhost' identified by 'root';"

 

1.4 启动数据库,并测试

1.4.1 启动数据库

/etc/init.d/mysqld start

  【MySQL】CentOS7 MySQL 的部署和安装

 

1.4.2 确认数据库是否开启成功

# 通过查找进程的方式可以查看是否开启了
ps -ef|grep mysql

 【MySQL】CentOS7 MySQL 的部署和安装

# 查看3306端口是否打开
netstat -ntpl

  【MySQL】CentOS7 MySQL 的部署和安装

 

二、快捷操作数据库,及数据库自启动

2.1 快捷操作数据库

2.2.1 使用 mysql 命令登录或操作

每次都用 /etc/init.d/mysqld start等命令操作数据库无疑是十分麻烦的,可以通过建立软链接来做到直接用mysql命令就能开启数据库

 ln -s /usr/local/mysql/bin/* /usr/local/sbin/

建立软链接之后即可直接使用mysql语句了。例如用mysql语句直接登陆。

【MySQL】CentOS7 MySQL 的部署和安装

 

2.2.2 使用 systemctl 来控制数据库

将MySQL程序配置到systemctl下,可以使用systemctl命令快速开启关闭MySQL

vim  /usr/lib/systemd/system/mysqld.service
[mysqld]
[Unit]
Description=MySQL
SourcePath=/etc/init.d/mysqld
Before=shutdown.target[Service]
User=mysql
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop[Install]
WantedBy=multi-user.target
# 重新加载服务器的配置文件
systemctl daemon-reload# 重启mysql服务
systemctl restart mysqld# 查看日志,是否成功
journalctl -f

若出现mysql文件权限不够,无法删除的提示,则去对应路径下删除这个文件。再重新加载服务器配置文件

【MySQL】CentOS7 MySQL 的部署和安装

 

2.2 配置开机自启动

2.2.1 开启开机自启动

systemctl enable mysqld

  【MySQL】CentOS7 MySQL 的部署和安装

 

2.2.2 关闭开机自启动

systemctl disable  mysqld

  【MySQL】CentOS7 MySQL 的部署和安装

 

三、问题处理

3.1 the server quit without updating PID file (/usr/local/mysql/data/mysqld.pid)

先给账号赋予权限:

chown  -R  mysql.mysql /usr/local/mysql 
chown  -R  mysql.mysql /etc/my.cnf

删除data文件夹下所有文件,并重新安装数据库(会导致数据库数据丢失,如有需要请做好备份)

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

 

  相关解决方案