Can't connect to local MySQL server through socke

参考网上相关的方法,包括:(http://blog.csdn.net/lmss82/archive/2009/08/05/4414178.aspxphp

方案1.
 1.#ps -A|grep mysql 
   显示相似:
  1829 ?        00:00:00 mysqld_safe
   1876 ?        00:00:31 mysqld
  2.#kill -9 1829
  3.#kill -9 1876
  4.#/etc/init.d/mysql restart
  5.#mysql -u root -p
 
   他的麻烦解决了,个人还没解决!
 
继续找
方案2 
先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是否是权限问题.
------------------------------------------------------------------------------------
[root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql
[root@localhost beinan]# /etc/init.d/mysqld start
启动 MySQL: [ 肯定 ]
[root@localhost lib]# mysqladmin -uroot password '123456'
[root@localhost lib]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 3 to server version: 4.1.11 html

Type 'help;' or '/h' for help. Type '/c' to clear the buffe
 
他的也解决了,个人麻烦还在继续,依然继续寻找
 
方案3 
问题解决了,居然是max_connections=1000 他说太多了,而后改为500也说多,无奈删之问题解决了。
 
仍是不行
方案4
    
     /var/lib/mysql 全部文件权限 改为mysql.mysql
     
     不行不行
 
方案5
     摘要:解决不能经过mysql .sock链接MySQL问题 这个问题主要提示是,不能经过 '/tmp/mysql .sock'连到服务器,而php标准配置正是用过'/tmp/mysql .sock',可是一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql .sock或者其余的什么地方,你能够经过修改/etc/my.cnf文件来修正它,打开文件,能够看到以下的东东: 
   [mysql d] 
  socket=/var/lib/mysql .sock 
  改一下就行了,但也会引发其余的问题,如mysql 程序连不上了,再加一点: 
  [mysql ] 
  socket=/tmp/mysql .sock 
  或者还能够经过修改php.ini中的配置来使php用其余的mysql .sock来连,这个你们本身去找找
  
  或者用这样的方法:
  ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock mysql

成功了,就是这样ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock sql

OK! 数据库

 

但个人系统中没有找到mysql.sock文件,只有mysqld.sock文件,/var/run/mysqld/mysqld.sock 服务器

因而仿照上面的作法: ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock dom

这样,能够正常链接数据库了 socket

 

再附一篇相关文章:(http://blog.chinaunix.net/u1/43706/showart_351145.htmlide

 mysql_real_connect()试图创建到运行host的一个MySQL数据库引擎的一个链接。其函数原形为: 函数

   MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag)   

   我要编一段程序用来远程链接一个mysql数据库。我在数据库的本机上作试验,发现mysql_real_connect()的第二个参数设为"localhost"时能够正常链接,当改写为该机器的IP地址"192.168.100.2"时就链接失败。我在程序中写的原句为:
mysql_real_connect(mysql,"192.168.100.2","root","","mydns",0,NULL,0)。
 
   最初,我觉得将"localhost"改成"192.168.100.2"以后要将第六个参数端口号写上,但仍是不行。因为我是在Linux上作的,因此想也许须要将第七个参数unix_socket写上,结果仍是不行。因而到google找解决方法,发现要远程链接mysql须要为mysql的指定账号设置远程链接的权限。在个人程序中,就要为root设置这一权限。事实证实,我以前链接失败正是因为这个缘由致使的。但问题是,网上被普遍转贴的方法是错误的,我照作后还不行,最后问了同窗才解决的。下面我具体说一下,望你们不会再被误导。
 
    在mysql数据库中有一个mysql库,它里面包含一个user表,里面存有全部账号及它们的权限及特征。对应个人user表中找到User项为root的,发现有两项,其Host项分别为localhost和localhost.localdomain。咱们只须要把'localhost'改成'%'就可让全部远程机器以root账号登录mysql服务器。也能够将'localhost'改成某一个ip地址,这样就能够在该地址的机器上登录mysql服务器。这些都没有问题,只是网上被广为传颂的一个更改Host项的方法是错误的。他的方法是用update语句将指定User项的Host项改过来,若是想添加一个新的用于远程访问的账号,就用insert语句添加。事实是这根本不行,我按照做了,表是变了,但仍是连不上。后来通过询问才知道,要想改,结合个人状况,必须用下面的这条语句:
     grant all privileges on mydns.* to  'root'@'%'
来改变root账号的权限。若是添加新账号也是如此。想必这个表比较特殊,用普通的SQL语句不能操做。若是账号有密码,后面再加上identified by '***'(*为你账号的密码)就能够了。
 
   为了解决这个问题用了一下午的时间,费了很多周折,写出来也能让你们少走些弯路。
相关文章
相关标签/搜索