【Centos】Mysql修改数据文件目录或解决部分报错

参考:

【本文大部分参考此文档】

流程:

1.正常安装Mysql,默认 安装目录/usr/local/mysql 数据文件目录/usr/local/mysql/data

2.修改数据文件目录至 /home/mysql/data 【需求】

操作:

第一步:

1.查看MySQL源数据存放路径的命令:

show variables like datadir;

查询后,结果如图显示:

2.停止Mysql服务:

service mysql stop         //或者service mysqld stop  如果没有添加至服务,执行下一句
ps -ef|grep mysql
kill -9 pid                //pid= 上一句命令查询后所得

3.创建新的目录:/home/mysql/data,同时确保权限是否赋予

//创建用户
groupadd mysql
useradd mysql -g mysql
//创建目录
mkdir -p /home/mysql/data
//授权
chmod -R 777 /home/mysql
chown -R mysql:mysql /home/mysql

4.将以前的数据文件复制到新的数据目录下:

cp -rf /usr/local/mysql/data/* /home/mysql/data/

chown -R mysql:mysql /home/mysql/data/*              //再刷一次权限

5.更改配置文件:

①/etc/my.cnf

[client]
socket = /home/mysql/data/mysql.sock
[mysqld]
datadir = /home/mysql/data
socket = /home/mysql/data/mysql.sock

②/etc/init.d/mysql[或者mysqld]

datadir = /home/mysql/data

6.刷新目录权限:

chown -R mysql:mysql /home/mysql/data

service iptables restart
service iptables stop

setenforce 0

7.重启mysql服务

service mysql start/restart    //service mysqld start/restart
//如果没有添加服务
cd /usr/local/mysql/support-files
./mysql.server start

8.进入mysql命令行

mysql或者mysql -uroot -p或者 mysql -hlocalhost -uroot -p等
show databases;
show variables like datadir        //查看目录是否修改成功:/home/mysql/data

此时数据文件目录已经修改成功,后续是权限已经表权限问题。

第二步:

1.进入数据文件目录查看属性:

//授权
cd /home/mysql/data
ll -lah
//授权
chmod -R 777 /home/mysql/data/*
chown -R mysql:mysql /home/mysql
//查看移动过来的数据文件属性,如:mysql,test~~~~~
//确保属性为mysql,有必要可以进入下层目录,查看属性,如果为root,需修改成MySQL

2.刷新mysql.server表

//连接mysql
mysql -uroot -p

//连接mysql数据库
use mysql;

//刷新
flush privileges;        //报错ERROR 1146(42S02):Table mysql.servers doesnt exist

//删除servers表
drop table if exists mysql.servers;

3.运行建库脚本

CREATE TABLE `servers` (
        `Server_name` char(64) NOT NULL,
        `Host` char(64) NOT NULL,`Db` char(64) NOT NULL,
        `Username` char(64) NOT NULL,
        `Password` char(64) NOT NULL,
        `Port` int(4) DEFAULT NULL,
        `Socket` char(64) DEFAULT NULL,
        `Wrapper` char(64) NOT NULL,
        `Owner` char(64) NOT NULL,
        PRIMARY KEY (`Server_name`)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=MySQL Foreign Servers table;

4.再次刷新权限

flush privileges;        //如果还是报错,重启后再次执行

5.完成,此时打开Navicat连接即可。

报错问题一览:

1.参考

2.安装完成后 提示pid,或者localadmin.locaadmin之类的

答:一般是sock文件,或者错误修改目录导致

经验分享 程序员 微信小程序 职场和发展