1、关掉数据库 sudo /etc/init.d/mysql stop
2、假设我们指定的数据库文件目录为/db
创建目录 /db,并修改其拥有者及所属群组为mysql:mysql.命令:chown mysql:mysql db
修改mysql配置文件/etc/mysql/my.cnf:将datadir=/var/lib/mysql改为datadir=/db
3、修改ubuntu中的安全设置
sudo gedit /etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
更换成
/db/ r,
/db/** rwk,
AppArmor是一个linux底层程序,负责监控linux上的应用程序,只要跟注册的资料权限不符,路径不对,就不能执行。修改完成后,要重启 AppArmor服务才能生效。
执行 /etc/init.d/apparmor restart
4、重新初始化数据文件:执行sudo mysql_install_db
5、启动mysql数据库服务:sudo /etc/init.d/mysql start
6、设置mysql数据库root密码:mysqladmin -u root password ‘new-password’
7、在/etc/mysql/debian.cnf中找到你的debian-sys-maint用户密码,在mysql中重新建立这个用户.
此时我们会发现/db目录下出现mysql相关文件。如果我们新建数据库,其数据库文件也将出现在db目录下。表示我们修改的mysql数据库文件存储目录正确。
有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例如
检查优化并修复所有的数据库用:
# mysqlcheck -A -o -r -p
修复指定的数据库用
# mysqlcheck -o -r Database_NAME -p
修改用户密码:进入命令行模式
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD(“new password”) WHERE user=’name';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;
Recent Comments