我需要使用 SUSE 版本 11 发行版为我的 Linux 2.16 版本运行 MySQL 服务。下载以下文件并安装所有 rpm,如下所示:
MySQL-server-5.5.27-1.sles11.i586
MySQL-client-5.5.27-1.sles11.i586
MySQL-devel-5.5.27-1.sles11.i586
MySQL-shared-5.5.27-1.sles11.i586
MySQL-shared-compat-5.5.27-1.sles11.i586
安装期间没有错误,并且我已经通过以下方式确认了已安装的软件包:
rpm -qa|grep -i sql
但是尝试执行以下指令时服务器没有启动:
$> mysql
M 收到以下错误消息:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
我已经检查过了/etc/init.d位置,仅限mysql条目在那里,而不是mysqld,这是服务器启动错误的原因吗?
在谷歌搜索了几个小时后,我也尝试从同一位置启动 ./mysql,但得到以下输出:
Starting MySQL..The server quit without updating PID file (/var/lib/mysql/ABC2-rahul.pid).
我是 mysql 新手,如能得到任何帮助我将不胜感激。提前致谢。
我检查后发现一些配置文件在 /usr/share/mysql 位置,并且我已将 my-huge.cnf 文件复制到 /etc 位置,有什么意见吗?
以下是同一个 my.cnf 文件的内容:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
答案1
看起来很像权限问题,检查 /var/lib/mysql 是否与运行 mysql 守护程序的用户属于同一用户。
答案2
您的包裹似乎格式不正确或者不完整。
为了解决这个问题,请创建您自己的 my.cnf 文件。
确认已创建“mysql”用户。如果没有,请创建用户 mysql 和组 mysql。
在 /etc 中创建 my.cnf,使用最少的设置:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
port=3306
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
user=root
port=3306
socket=/var/lib/mysql/mysql.sock
这应该足以让 mysqld 保持正常运行。当然,您必须添加您的设置。使用 /etc/init.d/mysql start(或您的发行版用于启动服务的命令)启动服务器。
如果服务器启动,您必须创建 root 用户(通常使用“mysqladmin -u root -p password”和“mysqladmin -h hostname -u root -p password”)