基本思路就是为MySQL.user表增加一条记录:'Hadoop'@'%',这样,任何主机上的用户'hadoop'都可以远程连接MySQL数据库。于是输入下面的命令:
mysql> INSERT INTO mysql.user(Host,User,Password) VALUES('%','hadoop','1');
结果出现了错误:
1364 - Field 'ssl_cipher' doesn't have a default value
这是因为指定了严格模式,不能直接往mysql.user表里面insert用户:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
只能输入下面两个命令来实现:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' IDENTIFIED BY '1' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
这样,任何主机上的用户'hadoop'都可以凭借密码'1'远程连接MySQL数据库。