linux环境下mysql5.6的安装、配置、使用及常见问题解决办法

来源:互联网 发布:网络斗牛赌博作弊器 编辑:程序博客网 时间:2024/06/08 14:38

准备工作

本文档是在ubuntu14.04下安装5.6版本的mysql。
1、所用软件:Ubuntu14.04 LTS版
2、建议使用root用户
3、使用服务器地址:192.168.1.236
4、安装mysql5.6.19
5、安装mysql需要的依赖

apt-get install mysql-client-core-5.6apt-get install mysql-client-5.6


安装mysql

如果运行如上命令后,在命令行信息最后看到类似apt-get install mysql-server-5.6安装过程中输入root的密码即可;

常用命令

验证原有主机是否已安装这里主要是运行sudo netstat -tap | grep mysql命令查看是否有MySQL的端口,如果不加sudo的话因为权限无法顺利执行:netstat -tap | grep mysql如果按照成功,执行上面命令会显示:tcp        0      0 localhost:mysql         *:*                     LISTEN      6840/mysqld 启动# 启动MySQL$ sudo service mysql start # 关闭MySQL$ sudo service mysql stop# 重启MySQL$ sudo service mysql restart# 其他命令:$ sudo /etc/init.d/mysql start$ sudo /etc/init.d/mysql stop$ sudo /etc/init.d/mysql restart然后,再次键入命令来检查是否已启动MySQL:$ netstat -tap | grep mysqlMySQL监听在localhost,说明MySQL已经启动。登录使用命令行mysql -u root -p 来登录MySQL:$ mysql -u root -p远程登录$ mysql  -h192.168.1.160 -u root -p重启服务sudo service mysql restart停止服务sudo service mysql stop查看服务状态sudo service mysql status


常见错误解决方案

常见错误1: Can’t connect to MySQL server on ‘10.211.55.5’ (61)

我要在本机链接我本机上虚拟机的mysql,我使用mac下的workbench,就就是连接不上,报错信息为:“Can’t connect to MySQL server on ‘10.211.55.5’ (61)”,查了好多资料,有一种方法解决了我的问题:

第一步:查看是都3306端口开启    使用ufw,sudo ufw status或者直接使用命令 netstat -an | grep 3306,如果结果显示类似:    tcp   0   0 127.0.0.1:3306   0.0.0.0:*     LISTEN从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。第二步:修改配置文件    修改文件 /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把上面这一行注释掉或者把127.0.0.1换成合适的IP,建议注释掉。    重新启动后,重新使用netstat检测:    ~# netstat -an | grep 3306tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN第三步:使用创建的用户登录一下,成功。


常见错误二:is not allowed to connect to this MySQL server

ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server这是告诉你没有权限连接指定IP的主机,下面我们来看看解决办法。
处理方法有二个:

1、 授权法

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;GRANT ALL PRIVILEGES ON *.* TO ‘root’@’10.10.40.54′ IDENTIFIED BY123456WITH GRANT OPTION;

2、 改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%这个是因为权限的问题,处理方式如下:shell>mysql --user=root -p输入密码mysql>use mysqlmysql>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]';[username]:远程登入的使用者代码[db_name]:表示欲开放给使用者的数据库称[password]:远程登入的使用者密码[ipadd]:IP地址或者IP反查后的DNS Name,此例的内容需填入'60-248-32-13.HINET-IP.hinet.net' ,包函上引号(')(其实就是在远端服务器上执行,地址填写本地主机的ip地址。)也可以这样写mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = ‘%’ where user = ‘root’;mysql>select host, user from user;


修改默认编码为UTF8

登录MySQL,进行字符编码查看:#mysql -u root - p输入密码mysql> show variables like ‘character%’ ;  +————————–+—————————-+ | Variable_name | Value | +————————–+—————————-+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +————————–+—————————-+ 在/etc/mysql下有个my.cnf文件,我们修改my.cnf文件ubuntu@dbserver:~$ grep 'character' /etc/mysql/my.cnf default-character-set=utf8character-set-server=utf8修改完成后,service mysql restart重启mysql服务就生效
0 0