我有一个大问题试图连接到mysql。当我跑步时:
/usr/local/mysql/bin/mysql start
我有以下错误:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
我有mysql。Sock在/var/mysql目录下。
在/etc/my.cnf中,我有:
[client]
port=3306
socket=/var/mysql/mysql.sock
[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
在/etc/php.ini中有:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock
我已经使用sudo /opt/local/apache2/bin/apachectl restart重启apache
但还是有误差。
否则,我不知道这是否相关,但当我执行mysql_config——sockets时,我得到
--socket [/tmp/mysql.sock]
我还发现这是一个权限问题。我将MySQL文件与工作安装(都在Debian 6 squeeze上)进行了比较,并不得不进行以下所有权更改(其中mydatabase是您拥有的任何数据库)。
所有权mysql: mysql:
chown mysql:mysql /var/lib/mysql
chown mysql:mysql /var/lib/mysql/ib*
chown mysql:mysql /var/lib/mysql/mydatabase
chown mysql:mysql /var/lib/mysql/mydatabase/*
chown mysql:mysql /var/lib/mysql/mysql/*
所有权mysql:根:
chown mysql:root /var/lib/mysql/mysql
chown mysql:root /var/run/mysqld
所有权mysql: adm:
chown mysql:adm /var/log/mysql
chown mysql:adm /var/log/mysql.err
chown mysql:adm /var/log/mysql.log*
如果你正在重新安装mariadb,你必须检查mysql的旧进程是否还在运行,找到并杀死这个进程
ps ax | grep mysql
sudo kill -9 mysql
因为InnoDB会自动重启,你可以使用kill -15
如需重新安装*删除目录
sudo rm -rf /var/lib/mysql
创建一个默认的数据库结构并引导mariadb读取数据目录
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
然后重新配置
sudo mysql_secure_installation