ubuntu 源码MySQL 5.6安装后连接不上mysql.sock的问题

###问题### 在ubuntu上经过源码安装了MySQL 5.6,结果按照文档装完怎么也不能链接上。mysql

在启动了mysqld_safe以后,使用文档中介绍的 mysqladmin version 查看服务启动状况,会获得一条错误sql

error: 'Can't connect to local MySQL server through socket '/opt/mysql/mysql.sock'shell

经过查看日志,发现这是因为MySQL的运行账户没有权限向mysql的安装目录(我这里是/opt/mysql)写入文件致使的。也就是说mysqld没有权限建立mysql.sock,固然也就连接不了了。ubuntu

###解决方案### 解决这个问题的方法有不少种socket

####1. 修改安装目录用户#### 能够把mysql安装目录的owner设置为MySQL的运行账户。好比使用 /bin/mysqld_safe --user=mysql 启动的MySQL服务。能够经过下面的命令将MySQL的安装目录的用户修改成 mysql工具

cd MYSQLDIR
 chown -R mysql .

####2. 修改安装my.cnf#### 也能够经过修改mysql的配置文件来解决。 mysql的服务端和客户端工具均可以读取 /etc/mysql/my.cnf 来获取全局的配置信息。经过修改配置文件里的socket 选项,将mysql.sock文件定位到一个mysql运行用户能够访问的文件夹去就能够了。例如个人:this

[mysql]
socket=/opt/mysql/data/mysql.sock
port=3306

[mysqladmin]
socket=/opt/mysql/data/mysql.sock
port=3306

[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
port=3306
socket=/opt/mysql/data/mysql.sock

这里mysql, mysqladmin是对客户端工具mysql, mysqladmin的配置,mysqld是对服务端的配置日志

###吐槽###code

这个问题是因为文档的安装步骤中有个小bug。文档里说运行 mysql_install_db 以后,能够把mysql安装目录的用户再设置成 rootserver

Most of the MySQL installation can be owned by root if you like. The exception is that the data directory must be owned by mysql. To accomplish this, run the following commands as root in the installation directory:

shell> chown -R root .<br /> shell> chown -R mysql data

但你作了这一步以后,若是启动 mysql的时候是使用的是一个非root账户(如: mysql),就没有权限向你的mysql安装目录写入文件了,也就会致使这个问题。若是是严格按照文档来的话就会产生这个问题,坑死爹了

相关文章
相关标签/搜索