mysql version : 5.1.7
centos version : 6.8
设置用户对某个库的权限
为了远程连接我的服务器的mysql数据库,需要为该连接用户设置合适的访问权限。比如我想让makers这个用户远程连接,且给他访问某个库比如test的权限,那么就用root登入mysql。随后输入以下语句:
use mysql;
grant privileges on test.* to 'makers'@'%';
flush pirvileges;
然后重启数据库:
sudo service mysqld restart
注意这里要使用sudo,否则会出现关没关掉的现象。
就我的经历来说,一开始没使用sudo,随后出现了一堆问题。当我开始远程连接,连是连上了,但是库里没有表!!然后我进了数据库查看(以为把表误删了),发现表还在,试查询一下其中一个表,出现了这个错误:ERROR 1286 (42000): Unknown table engine 'InnoDB'
。
我去了网上查解决方法,清一色的说是没有安装Innodb插件,我想不对啊,之前就能用,重启一下服务就不能用了,肯定不是引擎插件的问题。
于是我去看了下日志,看到这些报错:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242881 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
190426 14:27:04 [ERROR] Plugin 'InnoDB' init function returned error.
190426 14:27:04 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
这样就好解决了,是日志文件冲突。就直接把mysql下的日志(路径/var/lib/mysql
),名字叫ib_logfilexxx的统统删掉了。这里保险点还是这样做:mv ib_logfile1 ib_logfile1.bak
。
然后再重启服务就ok了。