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

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

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

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

通过查看日志,发现这是由于MySQL的运行帐户没有权限向mysql的安装目录(我这里是/opt/mysql)写入文件导致的。也就是说mysqld没有权限创建mysql.sock,当然也就链接不了了。

###解决方案### 解决这个问题的方法有很多种

####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运行用户可以访问的文件夹去就可以了。例如我的:

[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是对服务端的配置

###吐槽###

这个问题是由于文档的安装步骤中有个小bug。文档里说运行 mysql_install_db 之后,可以把mysql安装目录的用户再设置成 root

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安装目录写入文件了,也就会导致这个问题。如果是严格按照文档来的话就会产生这个问题,坑死爹了

转载于:https://my.oschina.net/u/1032146/blog/146494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值