[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1如果我想让我本地docker里的服务也访问mysql要怎么配置,可以指定docker的ip加上吗
时间: 2023-12-06 10:02:44 浏览: 38
是的,你可以将 `bind-address` 参数设置为你的 Docker 容器的 IP 地址加上 MySQL 的默认端口号(3306)。假设你的 Docker 容器的 IP 地址为 172.17.0.2,那么你可以将 `bind-address` 的值改为 `172.17.0.2:3306`,然后重新启动 MySQL 服务即可。
修改后的配置文件如下:
```
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
# Listen on localhost and Docker container's IP address
bind-address = 127.0.0.1, 172.17.0.2:3306
```
修改完配置文件后,需要重新启动 MySQL 服务使得配置生效。
相关问题
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1如果我想让我本地docker里的服务也访问mysql要怎么配置
你需要将 `bind-address` 参数设置为 `0.0.0.0`,这样 MySQL 将会监听所有可用的网络接口,而不仅仅是 `localhost`。在你的配置文件中,将 `bind-address` 的值改为 `0.0.0.0`,然后重新启动 MySQL 服务即可。
修改后的配置文件如下:
```
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
# Listen on all available network interfaces
bind-address = 0.0.0.0
```
修改完配置文件后,需要重新启动 MySQL 服务使得配置生效。
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql -- datadir=/usr/local/mysql/data
"./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data" 这个命令是为了初始化 MySQL 数据库。
- `--initialize`:表示进行数据库初始化操作。
- `--user=mysql`:指定使用 "mysql" 用户运行 MySQL 服务。
- `--basedir=/usr/local/mysql`:指定 MySQL 的安装目录。
- `--datadir=/usr/local/mysql/data`:指定 MySQL 数据库文件的存储目录。
执行该命令将会初始化 MySQL 数据库,并根据指定的用户、安装目录和数据存储目录进行配置。请确保这些目录的路径正确,并且有足够的权限执行该操作。