Rootop 服务器运维与web架构

2011-01-06
发表者 Venus
暂无评论

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

看到这个,您也肯定在百度Google搜索过。

我也遇到过,但是照配置来,没效果,之前我修改过my.cnf配置文件,将mysql目录修改了。系统中

mysql -u root -p 登陆没问题,在客户端装discuz出问题了,就报这个错。

然后在配置文件中,将数据库地址换成127.0.0.1 OK了。我真纳闷了,hosts文件解析关系有,dns也配置为本地的。为啥就不行。

2010-12-24
发表者 Venus
暂无评论

Timeout error occurred trying to start MySQL Daemon

      今天修改Mysql数据库的数据存放路径,修改完后,启动数据库提示Timeout error occurred trying to start MySQL Daemon 错误,网上搜了一大顿,没找到最终原因,最后查看日志,确定为Selinux问题。

  setenforce 0 再次重启好了。

   你可以关掉selinux,也可以更改安全上下文来解决。

[root@dot5 ~]# chcon -R system_u:object_r:mysqld_db_t /mysqldb/
[root@dot5 ~]# ll -dZ /mysqldb/
drwxr-xr-x  root root system_u:object_r:mysqld_db_t    /mysqldb/
[root@dot5 ~]# ll -dZ /mysqldb/mysql/
drwxr-xr-x  mysql mysql system_u:object_r:mysqld_db_t    /mysqldb/mysql/
[root@dot5 ~]# service mysqld start
启动 MySQL:                                               [确定]
[root@dot5 ~]#

其次,出现此问题的原因还有文件夹的权限问题,必须mysql 用户及mysql组对其数据路径文件夹拥有权限。

[root@dot5 ~]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
[root@dot5 ~]# vi /etc/my.cnf

[mysqld]
datadir=/mysqldb/mysql
socket=/mysqldb/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#刚才没添加以下代码,出现以上错误。
[client]
#password       = your_password
socket=/mysqldb/mysql/mysql.sock

可以从/usr/share/mysql下根据实际情况拷贝一个my.cnf到/etc下,加以配置。

记得修改mysql的启动脚本/etc/init.d/mysql

2010-12-24
发表者 Venus
暂无评论

关于Linux下 属主、属组、其它 的权限问题

        建立A用户 隶属a,b组 ;B用户隶属b,c组,在A用户内建立文件“1”权限设置为chmod 707 1, 然后以B用户的身份打开文件可以打开但将1的权限设置为770后 B用户则无法访问或修改.

        这是在百度里某兄台提出的问题,我一看,眨眼也迷糊了,一想是这么回事:

useradd a
useradd b
usreadd c

[root@dot5 ~]# groups a
a : a
[root@dot5 ~]# groups b
b : b
[root@dot5 ~]# groups c
c : c
[root@dot5 ~]# usermod -G b a
[root@dot5 ~]# groups a
a : a b
[root@dot5 ~]# usermod -G c b
[root@dot5 ~]# groups b
b : b c

[a@dot5 tmp]$ touch 1
[a@dot5 tmp]$ chmod 707 1
[a@dot5 tmp]$ ls -ld 1
-rwx—rwx 1 a a 32 12-24 18:26 1
[a@dot5 tmp]$
看,第一个a是属主,第二个a是所属组,b用户是bc组,a用户是ab组,可见b用户不属于a组,1的组权限为0,就是只针对a组的,所以b不受影响。

补充:

groups $username   //查看用户所属组

usermod -g              //修改主组     只能有一个主组

usermod -G            //附属组   可以拥有多个附属组