实际上 使用insert可能出现 Field 'ssl_cipher' doesn't have a default value 不建议使用
只是今天使用了一次 把遇到的错误记录下来
创建用户:
mysql> insert into mysql.user( Host, User, Password ) values ( 'localhost', 'boss', password('boss') );
这样就创建了一个用户名密码都为BOSS的用户
如果遇到 Field 'ssl_cipher' doesn't have a default value
可以用 以下语句指定ssl_cipher
mysql> insert into mysql.user( Host, User, Password, ssl_cipher, x509_issuer, x509_subject) values ( 'localhost', 'boss', password('boss'), ' ', ' ', ' ' );
创建用户需要的数据库:
mysql> create database db1;
授权BOSS用户 db1数据库的所有权限:
mysql> grant all privileges on db1.* to boss@'localhost' identified by 'boss';
刷新系统权限表:
mysql>flush privileges;
开启远程访问权限:
insert into mysql.user(Host,User,Password) values( '%','boss',password('boss'));
重点是那个%,当然%也可以替换为具体IP
千万不要 UPDATE user SET Host='%' WHERE User='boss' AND Host='localhost' LIMIT1;
这样会刷掉原有记录而无法从本地登录
(错误信息 Access denied for user 'root'@'localhost' (using password: YES) )
update 过后虽然你的访问权限是%
看似是可以从任何主机访问
但是确无无法使用mysql -u boss -pboss登录,不加 -h 参数默认是localhost(很奇怪)
至于mysql -u boss -pboss -h127.0.0.1没有测试过,有兴趣的朋友可以测试一下.