首页 » 我的课程 » 数据库 » 正文

centos中mysql移动了存储位置后的一些注意事项

首先 mysql 默认是装在系统磁盘的。 如果你租了阿里云的服务器,系统盘多少大?

大家跟我一起念:20G。

好,所以如果你的库很大。必然是要移动到你另外加载的磁盘的。假如你这时已经把mysql 刚装好,那么这时来移动式最快的。

假设我们是用root账号 来完成的

第一步:知道mysql默认存在哪

/var/lib/mysql 

第二步你要移动到哪?

 譬如是 /aaa/bbb

第三步。关掉mysql服务 。譬如 service mysqld stop (centos7 用systemctl 自行研究)

第四步: cp -rf /var/lib/mysql  /aaa/bbb  把文件拷贝过去。 这就是为啥上面要关掉mysql。 不然你拷贝的过去?

第五步。修改 /etc/my.cnf

 vi /etc/my.cnf  (vi都不会,那就不要看下去了)

 修改如下配置  (没有就加进去)

[mysqld]
datadir=/aaa/bbb/mysql
socket=/aaa/bbb/mysql/mysql.sock

[client]
port            = 3306
socket          = /aaa/bbb/mysql/mysql.sock

保存并推出。

然后重启mysqld

这时你会发现启动不出来(出现错误  Can’t find file: ‘./mysql/host.frm’)。原因就是你用的是root账号 拷贝的文件。而mysql用的用户是mysql

解决办法有两个

1、删掉刚才的文件,重新用mysql账号进去复制文件

2、或者删掉刚才的文件,用mysql重新初始化 系统数据库 

 mysql_install_db –user=mysql


然后再次重启数据库。 注意如果你是重新初始化系统数据库的,那么你的mysql密码 就要重新置入一下.默认是空的

mysql  直接回车

然后

注意 sql命令 需要分号的。不要问我为什么

use mysql;  //切换到系统数据库

UPDATE user SET Password = password(‘XXXXX’) WHERE User =’root’;

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘xxxxxxx’ WITH GRANT OPTION;

FLUSH PRIVILEGES;


以上是啥意思 不用我多讲了吧

发表评论