23

       不幸遇到Mysql出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误导致无法启动
解决方法: 修改/etc/my.conf:

[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
socket=/var/lib/mysql/mysql.sock

       这样mysqld 及mysql就都可以搞定启动起来啦///
       不过问题也就来了,php程序链接数据库的时候同样还是会出现这个问题,因为这还需要修改/etc/php.ini的php配置文件中的mysql.default_socket的值,其默认的时候是为空的,将其修改设置为:

mysql.default_socket=/var/lib/mysql/mysql.sock

       但是有时这样并未能搞定php链接数据库的出现的Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 的问题,因为php程序很BT的貌似非得找链接/tmp/mysql.sock而这个文件是不存在的,好吧,那就给他做个链接操作不就得了

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

       这样php程序页面就可以链接到数据库啦!!!
附:

ls -l /var/lib/mysql/mysql.sock

看到的属性是:

srwxrwxrwx 1 mysql mysql 0 11-21 14:39 /var/lib/mysql/mysql.sock

       档案类型标志是s,还真没去了解过这样的类型。。。。

written by Yousri \\ tags: , ,

12

刚刚在虚拟机简单使用apt-get命令快速安装mysql数据库
问题来了,想在主机上使用root账号远程登陆数据库进行管理总是遇到连接测试不成功
起初还以为是root超级用户的缘故,还特地到虚拟机下另外创建新的一个普通用户,测试结果一样~
sigh 烦躁哈 后来ping了下虚拟机下的IP的3306端口号 原来连通都没有~。。。。
好吧,看来不是人品问题 或主机问题 不是数据库账户问题 估计是虚拟机mysql数据库配置文件问题~
回到虚拟机下 使用ip地址尝试登陆mysql都失败 即: mysql -h ip -u username -p password 竟然失败
而之前使用 mysql -u username -p password 在虚拟机终端下都很正常的登陆~
原来问题出在 my.cnf 数据库配置文件上~ 打开/etc/mysql/my.cnf 配置文件后 才发现
原来mysql数据库安装完成后默认host默认是使用localhost 或 127.0.0.1 而且不会自动与本机的ip地址关联一起
修改下配置文件并重启下mysql服务就可以搞定啦~
$ sudo vim /etc/mysql/my.cnf #打开数据库核心配置文件my.cnf
找到以下一行 并修改或注释掉
bind-address = 127.0.0.1 –> #bind-address = 127.0.0.1 或 bind-address = 虚拟机IP地址
保存退出 并重启mysql数据库
$ sudo /etc/init.d/mysql restart #重启mysql数据库服务
好啦 你可以测试下在虚拟机下 使用 mysql -h 虚拟机ip地址 -u root -p 命令能否连接上mysql数据库啦~
先别高兴太早,在主机或其他机子说不定还没办法成功的远程连接登陆到此数据库呢~
原因也很简单 为了安全考虑 基本默认都是限制远程登陆 特殊是对于root超级用户角色
现在先在本机上连接登陆到mysql数据库上 然后使用以下命令修改root可以在任何主机远程登陆管理的权限:
mysql>grant all privileges on *.* to root@”%” identified by “password” with grant option;
mysql>flush privileges;
好啦 这样就可以在任何一台机子通过IP地址使用root远程登陆到此mysql数据库进行操作管理啦~(前提:只要本机Mysql数据库服务有启动的话 哈哈)
这文章可能有点肤浅 但是之前倒确实没有遇到尝试过这东西 今天无聊玩弄的时候就当作记录下吧  或许对像自己这样的新手有所帮助

written by Yousri \\ tags: ,