Chinaunix首页 | 论坛 | 博客
  • 博客访问: 723833
  • 博文数量: 245
  • 博客积分: 10037
  • 博客等级: 上将
  • 技术积分: 2512
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-16 17:16
文章分类

全部博文(245)

文章存档

2008年(7)

2007年(238)

我的朋友

分类: LINUX

2007-07-09 11:48:27

1.一般情况下都是不能正常链接数据库,错误提示一般为:
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在
/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要
chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。
如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a
 
2.Mysql源码包安装:
     [root@xtxkj]# groupadd mysql
     [root@xtxkj]# useradd -g mysql mysql
     [root@xtxkj]# tar zxvf mysql-5.0.22.tar.gz
     [root@xtxkj]# ln -s /usr/local/mysql-5.0.22 mysql
     [root@xtxkj]# cd mysql-5.0.22
     [root@xtxkj]# ./configure --prefix=/usr/local/mysql --with-charset=gb2312
     [root@xtxkj]# make && make install
     [root@xtxkj]# cp support-files/my-medium.cnf /etc/my.cnf
     [root@xtxkj]# ./scripts/mysql_install_db --user=mysql
     [root@xtxkj]# chown -R root  .
     [root@xtxkj]# chgrp -R mysql .
     [root@xtxkj]# ./scripts/mysqld_safe --user=mysql & (用mysql用户启动很重要。)
     [root@xtxkj]# ./scripts/mysqladmin -u root password '这里写密码' (更改管理员密码尽量不要改就用默认为空,这步可用不用执行)
     [root@xtxkj]# ./scripts/mysql -uroot -p                (输入密码,默认密码为空,直接回车即可)  
----------------------------------------------------------------------------------------------------   
     [root@xtxkj]# Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
     如果出现上面的提示,说明mysql服务没有正常启动,因为mysql服务启动的话,会自动生成mysql.sock文件
     [root@xtxkj]# killall mysql
     杀掉所有mysql进程,重新启动
----------------------------------------------------------------------------------------------------
     [root@xtxkj]# bin/mysql_install_db --user=mysql
     重新启动
     [root@xtxkj]# bin/mysql -uroot -p                        (回车输入密码,默认为空出现如下表示成功了^_^)
     [root@xtxkj /]# mysql -uroot -p
     Enter password:
     Welcome to the MySQL monitor.  Commands end with ; or \g.
     Your MySQL connection id is 3 to server version: 5.0.22-log
     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
     mysql>
 
3.对大家见到的几个问题,我也见到了,解决如下:(以RedHat 9为例)
一、默认情况下/var/lib/mysql目录为空,(就是说如果你一次mysql也没有运行过的话)所以首先要初始化数据库才能下一步。
二、初始化数据库后数据表的权限一般是root的,你要把/var/lib/mysql下的文件改为mysql权限,否则出现无法读取某某表的错误。
三、楼主的帖子有个错误:--with-charset=complex 在5.0.24中编译不能通过,要这样才行:--with-extra-charsets=complex
4.[root@localhost ~]# service mysqld restart
Stopping MySQL:  [FAILED]
Initializing MySQL database:  Neither host 'localhost' nor 'localhost' could be looked up with
/usr/bin/resolveip
Please configure the 'hostname' command to return a correct hostname.
If you want to solve this at a later stage, restart this script with
the --force option
[FAILED]


/var/lib/mysqld 裏面已經清空了,還是沒有用
方法:
1. 设置本机的hostname,同时写到 /etc/hosts 里去
2. 确保你的机器上有 resolveip 这个程序,如果没有,就修改 mysqld_safe ,把相关的代码去掉

阅读(6293) | 评论(0) | 转发(0) |
0

上一篇:mysql的常见FAQ

下一篇:打造安全的windows

给主人留下些什么吧!~~