ubuntu开启mysql外部访问权限

本文介绍如何在Ubuntu系统上配置MySQL服务器,使其支持远程访问。包括安装MySQL、配置root用户权限、修改监听IP地址等步骤。

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

安装了ubuntu11.10版本,通过sudo apt-get install mysql-server安装了了mysql,这里不做安全考虑,我直接给权限了。

1.连接进入;
#mysql -u root -proot(这里密码在mysql安装过程中提示有设置)

2.我这里直接给root的外部访问权限了;
#grant all privileges on *.* to ‘root’@'%’ identified by ‘passwordd’ with grant option;
赋予root用户针对数据库的全部权限。(password为root用户密码)

3.退出数据库。

这时在Windows下面远程连接该数据库,则会报
Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’的错误。

此错误原因在于:
ubuntu中MySQL监听的3306端口IP问题,查看ubuntu中3306端口监听

#netstat -anpt|grep 3306
可以发现,当前默认监听的是127.0.0.1:3306

这里修改127.0.0.1的ip地址为你当前的ip地址。
使用root权限,修改/etc/mysql/my.cnf文件中bind-address,将bind-address=127.0.0.1修改为本机IP,重启MySQL服务,再使用上面命令查看端口监听,就会发现已经变成了本机IP:3306。这时,就可以使用远程连接了。
### 如何在 Ubuntu 系统上连接和访问 MySQL 数据库 #### 安装 MySQL 组件 为了能够在 Ubuntu 上成功连接到 MySQL 数据库,需要先安装必要的组件。对于服务器端而言,`mysql-server` 是必需的;而对于客户端,则需安装 `mysql-client` 和开发包 `libmysqlclient-dev` 来支持应用程序通过 C 或其他编程语言与 MySQL 进行交互。 ```bash sudo apt-get update sudo apt-get install mysql-server mysql-client libmysqlclient-dev ``` 上述命令会更新软件源列表并安装 MySQL 服务端、客户端及其对应的开发库[^2]。 #### 配置 MySQL 的远程访问权限 如果希望从外部网络位置(如 Windows 主机)安全地访问位于 Ubuntu 上运行的 MySQL 实例,则需要调整 MySQL 的配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf` 中的相关参数: ```bash sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在这个配置文件里,找到 bind-address 参数,并将其修改为允许特定 IP 地址或全部地址 (0.0.0.0),以便接受来自任何地方的请求[^4]。 完成编辑后保存更改并重启 MySQL 服务使新设置生效: ```bash sudo systemctl restart mysql.service ``` 接着,在 MySQL 命令行工具内授予目标用户相应的远程登录权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这一步骤确保指定用户名可以从任意主机名 '%' 登录数据库,并拥有足够的操作权限[^1]。 #### 使用编程接口访问 MySQL 当涉及到应用层面的数据存取时,可以利用多种方式实现对 MySQL 数据库的操作。例如,采用 Python 编程语言配合 pymysql 库可轻松构建简单的查询脚本: ```python import pymysql connection = pymysql.connect( host='localhost', user='root', # 替换成实际使用的账户名称 password='pwd', # 输入正确的密码 database='testdb'# 要访问的具体数据库名字 ) try: with connection.cursor() as cursor: sql = "SELECT VERSION()" cursor.execute(sql) result = cursor.fetchone() finally: connection.close() print(f"MySQL version: {result}") ``` 这段代码展示了怎样建立一个基本的数据库连接对象并通过它发送 SQL 查询语句获取当前版本号的信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值