Centos下MYSQL8的原生安装和数据存储目录迁移
虽然现在虽然有了docker,k8s比较方便了,但对于mysql这样的关系型数据库对IO的的要求比较高,在容器中网络,以及存储资源是共享的,这可能会影响数据的读写速度,所以不单单是数据库,建议对于高IO的服务还是安装在物理机上。在安装数据库的过程中,如果没有指定好数据库的存储目录,我们可以自己手动的来修改数据存储位置,一般都是放在数据盘,方便数据量大了以后来进行扩容。这里就是在centos下来原生
·
Centos下MySQL8原生安装和数据存储目录迁移
虽然现在虽然有了docker,k8s比较方便了,但对于mysql这样的关系型数据库对IO的的要求比较高,在容器中网络,以及存储资源是共享的,这可能会影响数据的读写速度,所以不单单是数据库,建议对于高IO的服务还是安装在物理机上。
这里就是在centos下来原生搭建一个单机版的mysql数据库,后续还会搭建集群版
一、检查环境
- 检查操作系统环境
命令:hostnamectl
如图所示:操作系统是CentOS7,64位 - 选择安装版本
- 如果已安装过mysql的,怕有残留文件,需要做一次卸载
rpm -aq | grep -i mysql | xargs rpm -e --nodeps
rpm -aq | grep -i mariadb | xargs rpm -e --nodeps #有mariadb的,也要删除
rm -rf `find / -name mysql`
- 安装相关依赖
yum install perl
yum install net-tools
二、安装
- 安装mysql数据库(注意,一定要按顺序安装,不然容易出错)
1. 安装common
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm --force --nodeps
2. 安装lib
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm --force --nodeps
3. 安装client
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm --force --nodeps
4. 安装server
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm --force --nodeps
- 初始化mysql
数据盘最好独立出来,为了方便后面扩容
mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/mysqldata
- 修改mysql的目录权限
chown -R mysql:mysql /var/lib/mysql
- 启动mysql
systemctl start mysqld
- 查看第一次启动时的初始密码
cat /var/log/mysqld.log | grep password
- 通过mysql安全设置来更改数据库密码
mysql_secure_installation
服务管理
# 启动数据库
systemctl start mysqld
# 关闭数据库
systemctl stop mysqld
# 重启数据库
systemctl restart mysqld
# 查看数据库状态
systemctl status mysqld
# 进入mysql
mysql -u root -p'密码'
数据库远程连接
- 由于mysql8.0以后的版本,用户创建和授权是分开了,所以在授权时,不能用5.7的那种方法了。
# 授予远程连接权限
create user 'root'@'%' identified by '密码';
grant all on *.* to `root`@`%` WITH GRANT OPTION;
# 这里一定要改成mysql_native_password,不然客户端navicat无法访问。
ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '密码';
# 查询mysql库user表的状态
select Host,User,authentication_string,plugin from user;
flush privileges;
- 如果是云主机,还要开放3306端口
数据存储位置迁移
在安装数据库的过程中,如果没有指定好数据库的存储目录,我们可以自己手动的来修改数据存储位置,一般都是放在数据盘,方便数据量大了以后来进行扩容
- 关闭MySQL服务
systemctl stop mysqld
- 创建新的数据库存储目录
mkdir -p /data/mysqldata
- 复制MySQL数据目录到新位置
cp -a /var/lib/mysql /data/
- 修改配置文件my.cnf
# 修改成如下配置
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/logs/mysqld.log
开放端口(需要重启防火墙)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld #重启防火墙
结束
更多推荐
已为社区贡献2条内容
所有评论(0)