使用talend连接一个mysql数据库,提示没有权限,最后发现mysql服务器的配置中只监听了127.0.0.1的端口,拒绝非本地的请求。通过将/etc/mysql/my.cnf中的bind_address项注释掉,/etc/init.d/mysql restart重启mysql服务器后,talend可以正常的访问该数据库:
root@ubuntu:~/extract/extract_mysql# vi /etc/mysql/my.cnf ## The MySQL database server configuration file.## You can copy this to one of:# - "/etc/mysql/my.cnf" to set global options,# - "~/.my.cnf" to set user-specific options.# # One can use all long options that the program supports.# Run program with --help to get a list of available options and with# --print-defaults to see which it would actually understand and use.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html# This will be passed to all mysql clients# It has been reported that passwords should be enclosed with ticks/quotes# escpecially if they contain "#" chars...# Remember to edit /etc/mysql/debian.cnf when changing the socket location.[client]port = 3306socket = /var/run/mysqld/mysqld.sock# Here is entries for some specific programs# The following values assume you have at least 32M ram# This was formally known as [safe_mysqld]. Both versions are currently parsed.[mysqld_safe]socket = /var/run/mysqld/mysqld.socknice = 0[mysqld]## * Basic Settings#user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmplc-messages-dir = /usr/share/mysqlskip-external-locking## Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.#
使用grant all 对部署talend的机器ip赋予权限:
mysql> grant all on *.* to root@172.28.0.74 idetified by '123456';ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'idetified by '123456'' at line 1mysql> grant all on *.* to root@172.28.0.74 idetified by '123456';ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'idetified by '123456'' at line 1mysql> grant all on *.* to 'root'@'172.28.0.74' identified by '123456';Query OK, 0 rows affected (0.16 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)