CentOS Linux系统MySQL安装教程
系统信息
使用命令查看linux信息,我的系统是 CentOS Linux 7 (Core)
1 |
|
确定一下系统的glibc版本,使用如下命令,我的版本是glibc-2.17,下载对应的版本MySQL
1 |
|
检查是否已经安装过mysql
1 |
|
如果环境中有遗留mysql则执行删除命令
1 |
|
查询遗留的mysql设置或命令,执行两条命令:
1 |
|
如通过上述两条命令发现有遗留,则执行清除命令,将所有查到的mysql可以删除
1 |
|
下载信息
(推荐)正常下载上传到Linux服务器
MySQL 8.4.2 LTS,服务器我们用长期支持版本
MySQL :: Download MySQL Community Server
连接到Linux后,执行创建 /data/yunwei 目录,并进入到目录下
1 |
|
上传MySQL压缩文件
1 |
|
(可选)使用 wget 下载
连接到Linux后,执行创建 /data/yunwei 目录,并进入到目录下
1 |
|
使用 wget 命令在Linux上直接下载对应的包体
1 |
|
解压安装MySQL
解码命令
1
tar -xvf mysql-8.4.2-linux-glibc2.17-x86_64.tar.xz
剪切到
/usr/local/mysql
中去1
mv mysql-8.4.2-linux-glibc2.17-x86_64 /usr/local/mysql
找一个目录来存储mysql的数据,如果你的数据量大,记得要找个大点的盘和目录,我的是在/data目录下
1
mkdir -p /data/mysql/data
创建 mariadb.log 文件 MySQL 不会自动创建
1
touch /data/mysql/mariadb.log
创建 mysql.pid 文件 MySQL 不会自动创建
1
touch /data/mysql/mysql.pid
MySQL权限管理
创建创建MYSQL⽤户和⽤户组
1
2
3groupadd mysql
useradd -g mysql mysql更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
1
2
3
4
5
6
7
8
9chmod -R 775 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 775 /data/mysql
chown -R mysql:mysql /data/mysql
chown -R 777 /tmp
准备MYSQL的配置⽂件
备份原有的配置文件
1
cp /etc/my.cnf /etc/my.cnf.back
将改配置覆盖进去
1
vi /etc/my.cnf
1 |
|
开始安装MySQL
初始化MySQL
初始化mysql,一定要记住初始化输出日志末尾的密码(数据库管理员临时密码)
1
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql
如果屏幕上没有打印则去日志文件中查看初始化完成后的临时密码
1
cat /data/mysql/mysql.err
- 我生成的密码 A temporary password is generated for root@localhost: xiMFijKi>3vY
启动mysql服务器
先将mysql.server放置到/etc/init.d/mysql中
1
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql命令
1
service mysql start
查看是否启动成功
1
ps -ef | grep mysql
- 修改初始密码
- 首先登录mysql,密码是上述初始化时,日志最后一行生成的那个临时密码
1
/usr/local/mysql/bin/mysql -u root -p
- 修改密码
如果是个人使用我推荐用 root 作为密码,如果有同事或者朋友想连接你的数据库,或者写一些开源的项目或者文章不会泄露任何个人隐私信息,root 也好记忆
1
2
3
4
5ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;
EXIT; - 使用新密码重新连接 MySQL 服务
1
/usr/local/mysql/bin/mysql -u root -p
开放远程连接
进入mysql库
1
use mysql;
更新mysql库中 user 为 root 的 host 数据
1
update user set user.Host='%' where user.User='root';
刷新配置
1
flush privileges;
如果遇到连不上 ,telnet 都连不上对应端口时,可能是linux 开启防火墙了,需要将 3306 添加到防火墙中
telnet 命令,看是否访问的到
1
telnet 192.168.0.106 3306
检查防火墙状态
1
sudo systemctl status firewalld
如果防火墙处于关闭状态,可以跳过此步骤。如果防火墙处于运行状态,需要开放
MySQL
服务的端口(默认为3306
)防火墙开放 MySQL 端口
1
2sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload查看指定区域所有打开的端口
1
firewall-cmd --zone=public --list-ports
将mysql设置为开机启动服务
在 /etc/systemd/system/ 路径下创建 mysql.service 文件
1 |
|
写入如下内容
1 |
|
设置开机自启动
# 查看是否配置开机启动
systemctl is-enabled mysql
# 设置开机启动
systemctl enable mysql
# 取消开机自启动
#systemctl disable mysql
# 查看服务当前状态
systemctl status mysql
# 启动nginx服务
systemctl start mysql
# 停止nginx服务
systemctl stop mysql
# 重启nginx服务
systemctl restart mysql