mysql创建新用户:
mysql> insert into mysql.user(Host,User,Password) values("localhost","guest",password("guest123"));
出现如下报错:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
网上找了两种方法
第一种方法:
出现错误的原因是mysql默认配置严格模式,该模式禁止通过insert的方式直接修改mysql库中的user表进行添加新用户,需要修改/etc/my.cnf文件
修改前:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
修改后:
sql-mode=NO_ENGINE_SUBSTITUTION
重启mysql服务:
service mysql restart
测试第一种方法无效,mysql版本 Ver 8.42 Distrib 5.6.48
第二种方法:
CREATE USER 'guest'@'localhost' IDENTIFIED BY 'guest123';
授予账户权限的方法如下:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'guest'@'localhost';
授予所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'guest'@'localhost';
查看用户权限:
show grants for 'guest'@'localhost';
测试第二种方法可以