Centos下怎么修改Mysql数据文件位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos下怎么修改Mysql数据文件位置相关的知识,希望对你有一定的参考价值。

我是直接在CentOS 5.5环境下安装的RPM包,mysql默认的数据文件存储目录为/var/lib/mysql
假如要把目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、停止mysql进程
mysql -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样MySQL的数据文件就移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/找到my-medium*.cnf文件,拷贝到/etc/并改名为my.cnf
命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
操作如下:
vi   my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server[mysqld] 
port = 3306
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
把其中datadir=/var/lib/mysql一行中修改成现在的实际存放路径:home/data/mysql
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注释此行)www.linuxidc.com
datadir=/home/data/mysql (加上此行)
最后做一个mysql.sock 链接:
ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock(需要从/home/data/mysql下复制一份过来)
7、重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
8、最后修改下数据库的权限
[root@localhost ~]# chown -R mysql:mysql /home/data/mysql/  ← 改变数据库的归属为mysql
[root@localhost ~]# chmod 700 /home/data/mysql/test/  ← 改变数据库目录属性为700
[root@localhost ~]# chmod 660 /home/data/mysql/test/*  ← 改变数据库中数据的属性为660
9 如果启动不成功,查看/var/log/mysql.log,如果是出现错误:
110222 11:15:07 [Warning] Can\'t create test file /home/mysql/localhost.lower-test
/usr/libexec/mysqld: Can\'t find file: \'./mysql/plugin.frm\' (errno: 13)
110222 11:15:07 [ERROR] Can\'t open the mysql.plugin table. Please run mysql_upgrade to create it.
110222 11:15:07 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
#在终端中先输入下面这一行
chown -R mysql:mysql /home/data/mysql
#在输入下面的一行就OK了
chcon -R -t mysqld_db_t /home/data/mysql
#重启下MYSQL试试~
/etc/init.d/mysqld restart
参考技术A 工具→系统设置→高级→常规→数据存储显示的路径就是数据的存储路径,直接备份路径中指定的文件夹。

centos安装mysql8

目录

1、下载

这里是下载位置,不要积分

2、上传

上传文件到mysql文件夹下

3、解压

在该压缩包同级的位置再创一个mysql文件夹,然后将压缩包解压到mysql目录下

解压命令:
tar -zvxf 压缩包名称 解压后存放的目录

4、创建数据库文件位置

创建文件夹命令:
mkdir mysqldb

5、赋权

赋予mysql目录的执行权限

chmod -R 777 /opt/mysql/mysql/

6、改配置

编辑my.cnf文件,修改内容如下所示

vim /etc/my.cnf
[mysqld]
user=root
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

7、生成临时密码

进入bin目录
cd /opt/mysql/mysql/bin

生成临时密码,保存好改密码,后面要用
./mysqld --initialize --console

8、启动服务

进行support-files文件夹
cd /opt/mysql/mysql/support-files

启动mysql服务
./mysql.server start

9 、添加服务到系统进程

cp /opt/mysql/mysql/support-files/mysql.server /etc/init.d/mysqld

10、设置自启动


赋予mysqld执行权限
chmod +x /etc/init.d/mysqld

开机自启动
systemctl enbale mysqld

11、修改密码

进入bin目录
cd /opt/mysql/mysql/bin

使用临时密码登录
./mysql -uroot -p

修改密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

12、设置允许远程登录

mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit

13、重启

重启
systemctl restart mysql

查看是否已启动
systemctl status mysql

14、开放3306端口

因为我是阿里云服务器,所以是在阿里云上添加的安全组

如果你是虚拟机等,执行下面的命令

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

15、测试连接

以上是关于Centos下怎么修改Mysql数据文件位置的主要内容,如果未能解决你的问题,请参考以下文章

centos怎么将默认语言从中文改成英文?

centos mysql 数据存储目录安装位置

centos mysql 数据存储目录安装位置

centos mysql 数据存储目录安装位置

centos安装mysql8

centos安装mysql8