MySQL 设置绑定地址时服务器重启错误
MySQL server restart error when setting bind-address
我正在按照本教程在我的 Digital Ocean droplet 上设置一个 MySQL 服务器,但使用的是 Ubuntu 16.04.
当我将 'bind-address' 设置为本地主机或 public 服务器的 ip 时,我可以重新启动服务器,但是当我尝试使用私有 ip 时,出现错误。
$ sudo service mysql restart
投掷:
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
systemctl 状态 mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since Mon 2017-07-03 23:23:36 UTC; 10s ago
Process: 16717 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 16709 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 16717 (code=exited, status=1/FAILURE); : 16718 (mysql-systemd-s)
Tasks: 2
Memory: 332.0K
CPU: 338ms
CGroup: /system.slice/mysql.service
└─control
├─16718 /bin/bash /usr/share/mysql/mysql-systemd-start post
└─16768 sleep 1
Jul 03 23:23:36 inradar-db-production systemd[1]: Starting MySQL Community Server...
Jul 03 23:23:38 inradar-db-production systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
journalctl -xe(最后几行)
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/16926/status" pid=169
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/"
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.901:460): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.901:461): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/16926/status" pid=169
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.905:462): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:39 inradar-db-production systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
lines 2193-2214/2214 (END)
有什么问题?
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
https://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/
我也有这个问题。您究竟向 my.cnf 文件中添加了什么?
安装时,我的 my.cnf 文件完全是空的。当我只添加 bind-address 行时,我得到了和你一样的错误。
然而,当我在其上方添加 [mysqld] 时,它起作用了...所以请尝试添加:
[mysqld]
bind-address = 0.0.0.0
一些额外的信息:当我查看我的日志时,我可以看到这些错误日志,它们似乎表明 mysql 正在 my.conf 文件中寻找额外的东西:
Aug 03 13:22:03 ubuntu mysql-systemd-start[19667]: my_print_defaults: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 23!
Aug 03 13:22:03 ubuntu mysql-systemd-start[19667]: my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
我现在可以远程连接到我的数据库了。
希望对您有所帮助!
我正在按照本教程在我的 Digital Ocean droplet 上设置一个 MySQL 服务器,但使用的是 Ubuntu 16.04.
当我将 'bind-address' 设置为本地主机或 public 服务器的 ip 时,我可以重新启动服务器,但是当我尝试使用私有 ip 时,出现错误。
$ sudo service mysql restart
投掷:
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
systemctl 状态 mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since Mon 2017-07-03 23:23:36 UTC; 10s ago
Process: 16717 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 16709 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 16717 (code=exited, status=1/FAILURE); : 16718 (mysql-systemd-s)
Tasks: 2
Memory: 332.0K
CPU: 338ms
CGroup: /system.slice/mysql.service
└─control
├─16718 /bin/bash /usr/share/mysql/mysql-systemd-start post
└─16768 sleep 1
Jul 03 23:23:36 inradar-db-production systemd[1]: Starting MySQL Community Server...
Jul 03 23:23:38 inradar-db-production systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
journalctl -xe(最后几行)
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/16926/status" pid=169
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/"
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.901:460): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.901:461): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:37 inradar-db-production audit[16926]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/16926/status" pid=169
Jul 03 23:24:37 inradar-db-production kernel: audit: type=1400 audit(1499124277.905:462): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld"
Jul 03 23:24:39 inradar-db-production systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
lines 2193-2214/2214 (END)
有什么问题?
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
https://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/
我也有这个问题。您究竟向 my.cnf 文件中添加了什么?
安装时,我的 my.cnf 文件完全是空的。当我只添加 bind-address 行时,我得到了和你一样的错误。
然而,当我在其上方添加 [mysqld] 时,它起作用了...所以请尝试添加:
[mysqld]
bind-address = 0.0.0.0
一些额外的信息:当我查看我的日志时,我可以看到这些错误日志,它们似乎表明 mysql 正在 my.conf 文件中寻找额外的东西:
Aug 03 13:22:03 ubuntu mysql-systemd-start[19667]: my_print_defaults: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 23!
Aug 03 13:22:03 ubuntu mysql-systemd-start[19667]: my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
我现在可以远程连接到我的数据库了。
希望对您有所帮助!