MySQL5.7开启远程访问及Ubuntu18.04防火墙3306端口

本文讲述了在Ubuntu18.04上,如何开启MySQL5.7的远程访问,并配置系统防火墙允许3306端口通过,以解决Java程序远程连接数据库的问题。步骤包括修改MySQL配置文件、设置用户权限以及添加iptables规则。此外,还提到了关于SSL连接的WARN告警及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在虚拟机中安装了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
<think>好的,我现在需要在Ubuntu系统上安装MySQL数据库。首先,我应该回忆一下之前学过的步骤,或者查找相关的资料。记得用户提到了几个引用,可能需要参考这些内容。 首先,用户提供的引用[2]提到不同Ubuntu版本对应的默认MySQL版本。比如Ubuntu 20.04MySQL 8.0,18.04和16.045.7,14.04和12.045.5。所以用户需要先确定自己的Ubuntu版本,然后才能知道将要安装哪个版本的MySQL。这可能影响到后续的配置,因为不同版本可能有不同的设置方式。 接下来,引用[1]和[3]提到安装MySQL的方法。引用[3]中提到了安装客户端client的命令是sudo apt install mysql-client,但可能还需要安装服务器端。通常,安装MySQL服务器可能需要使用sudo apt install mysql-server,或者直接安装默认版本。引用[4]指出在安装后需要修改root密码,因为初始密码是自动生成的,可能需要通过查看debian.cnf文件来获取临时密码。 所以步骤大概是这样的:首先更新软件包列表,然后安装MySQL服务器。安装过程中可能会提示设置root密码,但根据引用[4],可能有些情况下密码是自动生成的,需要手动查找并修改。安装完成后,需要运行安全脚本,比如mysql_secure_installation,来加强安全性。然后登录MySQL,可能需要修改密码,创建新用户,或者进行其他配置。 另外,用户可能需要安装客户端工具,比如mysql-client,以便远程连接或管理。此外,安装完成后可能需要调整防火墙设置,允许外部访问MySQL端口(默认3306)。但如果是本地使用,可能不需要这一步。 需要注意的常见问题包括安装过程中没有提示设置密码,这时候需要按照引用[4]的方法查看debian.cnf文件中的用户名和密码,然后用这些临时凭证登录,之后修改密码。还有可能安装后服务没有启动,需要手动启动服务,比如使用sudo systemctl start mysql。 还需要考虑是否要安装特定版本的MySQL,如果默认版本不符合需求,可能需要添加官方仓库或其他来源来安装指定版本,但一般情况下使用默认仓库的版本即可。 总结步骤应该是: 1. 更新系统包 2. 安装mysql-server 3. 安装完成后检查服务状态 4. 获取初始密码(如果需要的话) 5. 运行安全脚本 6. 登录并修改root密码 7. 配置远程访问(如果需要) 8. 安装客户端工具 可能还需要安装相关的开发库,比如libmysqlclient-dev,以便后续开发使用。 现在需要把这些步骤整理成用户容易理解的流程,并确保每个步骤的命令正确无误。同时,要引用正确的来源,比如引用[2]关于版本对应,引用[4]关于密码修改的部分。此外,提醒用户注意版本差异带来的不同操作步骤。</think>### 分步指南:在 Ubuntu 上安装 MySQL 数据库 #### 步骤 1:确认 Ubuntu 版本 不同 Ubuntu 版本默认安装的 MySQL 版本不同(见引用[2]): - Ubuntu 20.04 LTS → MySQL 8.0 - Ubuntu 18.04/16.04 LTS → MySQL 5.7 - Ubuntu 14.04/12.04 LTS → MySQL 5.5 可通过以下命令查看系统版本: ```bash lsb_release -a ``` #### 步骤 2:更新软件包列表 安装前更新软件源: ```bash sudo apt update ``` #### 步骤 3:安装 MySQL 服务器 执行以下命令安装默认版本的 MySQL 服务端: ```bash sudo apt install mysql-server ``` #### 步骤 4:启动 MySQL 服务 安装完成后自动启动服务,若未启动可手动操作: ```bash sudo systemctl start mysql # 启动服务 sudo systemctl enable mysql # 设置开机自启 ``` #### 步骤 5:获取初始密码(仅限自动生成密码的情况) 部分 Ubuntu 版本会生成临时密码(如 20.04),需通过以下命令查看(引用[4]): ```bash sudo cat /etc/mysql/debian.cnf ``` 记录 `user` 和 `password` 字段的值用于临时登录。 #### 步骤 6:运行安全配置脚本 执行交互式安全配置,包括设置 root 密码、移除匿名用户等: ```bash sudo mysql_secure_installation ``` 根据提示完成操作,若已通过临时密码登录,需在此步骤修改 root 密码。 #### 步骤 7:登录 MySQL 使用 root 用户登录: ```bash sudo mysql -u root -p ``` #### 步骤 8:安装客户端工具(可选) 若需远程访问或管理,可安装 MySQL 客户端(引用[3]): ```bash sudo apt install mysql-client ``` #### 验证安装 检查 MySQL 版本: ```bash mysql --version ``` #### 配置远程访问(可选) 1. 编辑配置文件: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 将 `bind-address = 127.0.0.1` 改为 `0.0.0.0`。 2. 重启服务: ```bash sudo systemctl restart mysql ``` 3.MySQL 中授权远程用户: ```sql CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'; FLUSH PRIVILEGES; ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值