Windows中Elipse连接Virtualbox中Centos7虚拟机的Mysql数据库
步骤如下:
1.刚安装的centos7系统可能会出现使用不了yum命令的情况:
解决方法:在命令行输入vi /etc/sysconfig/network-scripts/网卡文件,修改ONBOOT=yes,按ESC,输入:wq 按回车,保存后重启虚拟机即可使用yum命令。
查看网卡文件,例如我的网卡文件就是ifcfg-enp0s3,使用vi命令打开修改即可:
修改后如下所示:
2.进行系统源更新操作,命令行输入:yum update,会提示是否下载更新的文件,输出y按回车继续
3.输入ifconfig 查看本机ip地址信息(待会儿远程连接数据库的时候用得上),可能会出现ifconfig无法使用的报错信息
解决方法:输入yum install net-tools 按回车进行下载即可使用例如我的虚拟机网卡2的IP地址是:192.168.146.5
4.下载Mysql,官网下载安装mysql-server
命令如下:
yum仓库下载MySQL:
# yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
yum安装MySQL:
# yum install mysql-community-server
启动MySQL服务:
# service mysqld start
检查MySQL服务状态:
# service mysqld status
查看初始密码(如无内容直接跳过):
# grep 'temporary password' /var/log/mysqld.log
本地MySQL客户端登录:
# mysql -uroot -p
输入密码为第5步查出的,如果没有,直接回车,然后输入命令 :
# flush privileges
修改root登录密码(注意要切换到mysql数据库,使用use mysql):
# ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
修改密码时可能会出现如下报错信息:
说明新设置的密码不符合系统的密码组合要求,解决方法:
先随意改动原始密码中的任意一个元素(不改动的话可能会出现报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.),改成同样类型的元素,例如我的原始密码如图:
先改成 xc/;vvTT1&Uk (此处我只改动最后一个元素):
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'xc/;vvTT1&Uk';
然后重启mysql。
查看 mysql 初始的密码策略:
# SHOW VARIABLES LIKE 'validate_password%';
如下图:
首先需要设置密码的验证强度等级,设置 validate_password.policy 的全局参数为 LOW 即可:
# set global validate_password.policy=LOW;
其他密码策略更改命令相同,根据自身需求更改即可,更改完密码策略就可以设置自己想要的简单密码方便使用了。
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxxxxx';
” 可以看到修改成功,表示密码策略修改成功了!同时密码也修改成功了,重启mysql即可。
5.Java程序访问它的数据库。所以,我们要对远程服务器进行设置,使它允许你进行连接。
在mysql shell中输入:
mysql> use mysql;
mysql> show tables;
mysql> select host from user;
update user set host ='%' where user ='root';
6.开放3306端口访问权限
#firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启mysql服务,远程服务器就允许程序连接数据库了。
7.新建工程为“MysqlTest”,往该工程内导入jar包:mysql-connector-java-8.0.14.jar(版本自选,自行下载)
新建类MysqlJdbc用于测试远程连接mysql数据库,代码如下:
import java.sql.*;
public class MysqlJdbc {
public static void main(String args[]) {
try {
//加载MYSQL JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("Success loading Mysql Driver.");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
try {
//连接URL为 jdbc:mysql//服务器地址(使用ifconfig查询自己的ip地址)/数据库名 ,后面的2个参数分别是登陆用户名和密码
Connection connect = DriverManager.getConnection(
"jdbc:mysql://192.168.146.5:3306/mysql","root","jop123");
System.out.println("Success connect Mysql server!");
Statement stmt = connect.createStatement();
//user 为特定表的名称
ResultSet rs = stmt.executeQuery("select * from user");
while (rs.next()) {
System.out.println(rs.getString("host"));
}
}
catch (Exception e) {
System.out.print("Get data error.");
e.printStackTrace();
}
}
}
运行结果:
至此,Windows中Elipse连接Virtualbox中Centos7虚拟机的Mysql数据库成功!若有纰漏或错误的地方,望留言指正。