ubuntu下出现的2002, "Can't connect to local MySQL server through socket'/var/run/mysqld/mysqld.sock' (2)解决方法:
我试了下网上的所有方法,都不行,我同学遇到这种问题,重装了mysql,然后就好啦,我也试了试这个方法,将原来的mysql删除,重装mysql,按如下步骤,只需2分钟即可搞定:
1、删除 mysql
1sudo apt-get autoremove --purge mysql-server-5.0
2sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)
上面的其实有一些是多余的,建议还是按照顺序执行一遍
清理残留数据:
dpkg -l |grep ^rc|awk '{print $2}' |sudoxargs dpkg -P
2、安装 mysql
1 sudo apt-get install mysql-server
2 sudo apt-get install mysql-client
安装MySQLdb模块:
3 sudo apt-get install python-mysqldb(安装python-mysqldb 是将python和mysql连接起来)
如果在服务器上需要运行MYSQLDB,sudo apt-get install python-mysqldb,提示
E: Sub-process /usr/bin/dpkg returned anerror code (1)
此时可以这样解决:
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
重新安装,在此为:
sudo apt-get --reinstall installpython-mysqldb
一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:
1 sudo netstat -tap | grep mysql
当您运行该命令时,您可以看到类似下面的行:
tcp 0 0 localhost.localdomain:mysql *:*LISTEN -
如果服务器不能正常运行,您可以通过下列命令启动它(要使用sudo管理员权限执行):
1 sudo /etc/init.d/mysql restart
启动mysql时,如果遇到以下问题:
$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
查看"/var/log/mysql/error.log"文件:
1. 如果出现:
120415 23:01:09 [Note] Plugin 'InnoDB' isdisabled.
120415 23:01:09 [Note] Plugin 'FEDERATED'is disabled.
120415 23:01:09 [ERROR] Unknown/unsupportedstorage engine: InnoDB
120415 23:01:09 [ERROR] Aborting
120415 23:01:09 [Note] /usr/sbin/mysqld:Shutdown complete
则 在my.cnf中注释掉 "skip_innodb" 所在的行
1. 如果出现:端口已占用
则 通过 lsof -i:3360 端口查看mysql的pid,执行 kill -9 pid,关闭进程,重新启动mysql。 sudo sevice mysql startup
下面进行简单的配置
安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件)。将文件中的binding-address=127.0.0.1注释掉。其它配置根据需要更改。
Hadoop@master:~$sudo vi /etc/mysql/my.cnf
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
23、进入mysql
$mysql -uroot -p
Enter password :管理员密码
mysql>
执行以下命令,配置mysql远程访问:
mysql> grant all privileges on *.* to root@'%' identified by"root";
Query OK, 0 rows affected (0.01 sec)
重启msyql服务即可远程访问
hadoop@master:~$ sudo service mysql restart
mysql stop/waiting
mysql start/running, process 32359
到此安装和配置完成。
配置 MySQL 的管理员密码:
$ sudo mysqladmin -u root password newpassword
Ubuntu安装mysql客户端和管理可视化工具
$sudo
apt-get
install
mysql-workbench
Mysql允许远程连接
一、连接远程数据库: 1、显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456” C:/>mysql -h 192.168.5.116 -P 3306 -u root -p123456 2、隐藏密码如:MySQL 连接本地数据库,用户名为“root”, C:/>mysql -h localhost -u root -p Enter password: 二、配置mysql允许远程链接 默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。一、改表法 在localhost登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改称"%" 例如: #mysql -u root -p Enterpassword: …… mysql> mysql>update user set host = '%' whereuser = 'root'; mysql>select host,user from user;
二、授权法 例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。 mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY'mypassword' WITH GRANT OPTION; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 mysql>GRANT ALL PRIVILEGES ON *.* TO'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;mysql>FLUSH PRIVILEGES 使修改生效,就可以了
常见问题:
1、在采用法二授权法之后,无法在本地登录mysql(如:#mysql -u root -p -h 192.168.5.116 Enter password: ERROR 1045(28000): Access denied for user 'root'@'loadb116' (using password: YES) 上例中loadb116是主机名. 解决方法:1、这时可以使用:mysql -u root -p 登录,进入到mysql后。 mysql> grant all privileges on*.* to 'root'@'loadb116' identified by '123456' with grant option; Query OK, 0rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected(0.00 sec) 2、在本地使用ip地址登录 #mysql -u root -p -h 192.168.5.116 Enter password: Welcome to the MySQL monitor.Commands end with ; or /g. Your MySQL connection id is 60 Server version:5.1.45 MySQL Community Server (GPL) Type 'help;' or '/h' for help. Type '/c' toclear the buffer. mysql>