mysql数据文件存储位置修改
1、登录到mysql,使用mysql -u root -p输入密码即可登录
2、查看数据文件存储位置select @@datadir;如存放路径为/usr/local/mysql/data/
3、停止mysql服务,我采取的是杀进程形式,ps -ef|grep mysql,kill -9 进程号
4、创建新的数据文件存放位置,路径根据实际情况更改
mkdir -p /data/app
5、将文件拷贝到新的存放位置
cp -R /usr/local/mysql/data/ /data/app/
6、更改存储目录的用户或授权
chown -R mysql:mysql /data/app
chmod -R 777 /data/app
7、修改配置文件,此处我只更改数据存放位置,其它位置不变
8、启动mysql,版本不一样启动命令可能不一样,我使用的启动命令为:/etc/init.d/mysql start
9、再次登录mysql,使用select @@datadir;查看存储位置是否更改,更改完成后再创建的数据库会保存在新的存储路径下
遇到的问题及处理方法
mysql如何创建用户、授权
CREATE USER '你的mysql用户名'@'localhost' IDENTIFIED BY '你的mysql密码';
grant all ON *.* TO '你的mysql用户名'@localhost;
mysql赋权报错
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
查阅了一下官方文档,原因是由于root用户没有SYSTEM_USER权限,把权限加入后即可解决:
grant system_user on *.* to 'root';
再执行赋权ALTER USER 'ca'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密码'; 即可
navicat连接用户时,发现报错2509
原因为加密方式导致的报错,默认加密方式为caching_sha2_password
解决方法:
1、将mysql登录的加密规则修改为mysql_native_password,按顺序操作如下
#输入密码进入mysql
mysql -u root -p
#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的mysql密码' PASSWORD EXPIRE NEVER;
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密码';
#刷新数据
FLUSH PRIVILEGES;
2、修改后重新连接,仍报2509,查看下加密规则,将host设置为通配符模式%,即可
select host from user where user='root';
update user set host='%' where user='root';
flush privileges;