> 데이터 베이스 > MySQL 튜토리얼 > 在ubuntu环境下mysql数据库启动异常排除_MySQL

在ubuntu环境下mysql数据库启动异常排除_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-01 13:26:06
원래의
1086명이 탐색했습니다.

Ubuntu

bitsCN.com

今天在ubuntu 12.04安装了mysql , 使用命令:

sudo apt-get install mysql-server mysql-client 
로그인 후 복사
安装

安装以后启动正常,但是发现mysqld 服务只监听3306端口的127.0.0.1 ip地址,

sudo netstat -ntlptcp        0      0 127.0.0.1:3306            0.0.0.0:*               LISTEN      5459/mysqld  
로그인 후 복사

于是上网查了一下,发现时由于my.cnf配置文件中

bind-address =  127.0.0.1
로그인 후 복사

这说明它之间听来自127.0.0.1的请求,于是,我停掉了mysql 服务,然后修改了该配置文件。

bind-address = 0.0.0.0

这代表mysql 会监听来自任何IP地址的请求(当然,端口号必须是3306) .

修改的时候我发现该文件为只读文件,于是,我直接将文件权限改为777

sudo chmod 777 my.cnf
로그인 후 복사

然后,我重启mysql服务,发现,服务无法重启,报错,无日志

无奈之下,我只好卸载mysql 然后重新安装

sudo apt-get remove mysql-server mysql-client
로그인 후 복사
我发现这种方式无法完全卸载mysql,通过查询github,我得知,必须加purge参数,从而完整卸载包括配置文件在内的所有文件,同时,必须加上mysql-common
sudo apt-get install remove --purge mysql-server mysql-client mysql-common
로그인 후 복사

重新安装后,问题依旧:只要更改了配置文件my.cnf, mysql就无法重启了。

经过多方排查,我发现这是由于我更改了my.cnf权限,使得该文件能够被任何用户读取和修改,这是mysql不允许的。于是,我在更改了my.cnf之后,

重新把权限改回默认权限644,再次重启mysql,成功

这时候,我用sudo netstat -nltp 查看3306端口监听情况,发现已经变成:

sudo netstat -ntlptcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5459/mysqld

这意味着mysqld服务已经开始监听外部ip地址的请求了,但是这不意味着来自外部ip地址的请求有权限操作mysql数据库,必须为其添加权限:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;
로그인 후 복사
这时候,就可以从外部ip地址访问数据库了。 bitsCN.com
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿