在虚拟机中安装了Ubuntu18.04,MySQL5.7。系统默认的root等只能在本地访问,host被限制为localhost,为了进行Java程序测试,本地eclipse访问虚拟机的数据库,避免用户管理混乱,特意新建一数据库和用户。
新建数据库ttmsg,用户ub64,开启ub64用户远程访问的过程。
--新建数据库ttmsg
mysql> CREATE DATABASE ttmsg;
Query OK, 1 row affected (0.00 sec)
--新建用户ub64,和登陆密码,设置访问限制为%,允许远程访问。
mysql> CREATE USER 'ub64'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
--给新建的用户ub64访问数据库ttmsg的所有权限
mysql> grant all privileges on ttmsg.* to 'ub64'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
--刷新权限列表,这样就可以用ub64用户登陆了
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--新建数据表,开始测试。
mysql> CREATE TABLE Student(
-> ID INT NOT NULL AUTO_INCREMENT,
-> NAME VARCHAR(20) NOT NULL,
-> AGE INT NOT NULL,
-> PRIMARY KEY (ID)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+-----------------+
| Tables_in_ttmsg |
+-----------------+
| Student |
+-----------------+
1 row in set (0.00 sec)
在eclipse中调试java程序,尝试往Student表中插入数据,报错了。
------Records Creation--------
Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:612)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:862)
at org.springframewor