MYSQL系列-Linux上安装mysql 5.6.27,以及常见问题解决

Linux安装Mysql 5.6.27

     个人总结在Linux上安装Mysql 5.6.27版本的数据库,个人操作成功后记录下来,帮助自己同时也帮助别人。
首先官网上下载mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz(Linux版本的tar安装包);
然后通过SSH Secure File Transfer Client将文件放入首页面(/home/user)这里是我登录的普通用户,如果你登录的是root最高权限用户,那么可以直接把文件放到/usr/local/mysql下面
(这里在/usr/local目录下创建一个新的目录mysql文件夹------linux指令: mkdir /usr/local/mysql)
 
然后通过Shell Client操作Linux系统,进入有放mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz的文件夹目录下,然后解压tar文件------------  linux指令:   tar -zxvfmysql-5.6.27-linux-glibc2.5-x86_64.tar;
解压完毕后,会在当前目录下生成一个名为(mysql-5.6.27-linux-glibc2.5-x86_64)的文件夹,里面存放的就是mysql的安装程序了。
-------------------------------------------------------------------------------------
添加环境变量,linux命令:vi .bash_profile  里面加入
export  MYSQL_HOME = /usr/local/mysql
export PATH = MYSQL_HOME:$PATH
按ESC   输入:wq保存退出
-------------------------------------------------------------------------------------
然后将加压后的程序拷贝到之前创建的mysql文件夹中 -------------linux指令: cp -rf /home/user/mysql-5.6.27-linux-glibc2.5-x86_64/* /usr/local/mysql (这里也可以用剪切来完成以便节约空间,linux指令:mv /home/user/mysql-5.6.27-linux-glibc2.5-x86_64/* /usr/local/mysql)
添加系统mysql组和mysql用户,执行命令:groupadd mysql和useradd -r -g mysql mysql
进入我们安装的目录--------------linux命令: cd /usr/local/mysql
修改当前目录拥有者mysql用户--------------linux命令: chown -R mysql:mysql ./
安装数据库: linux命令--------------linux命令:./scripts/mysql_install_db --user=mysql(我们之前添加的用户组)
修改当前目录拥有者为root用户----------linux命令:chown -R root:root ./
修改当前data目录拥有者mysql用户-----------linux命令:chown -R mysql:mysql data
启动mysql服务和添加开机启动mysql服务
-----------------添加开机启动------linux命令:cp support-files/mysql.server /etc/init.d/mysql(把启动脚步放到开机初始化目录)
-----------------启动mysql服务------linux命令:/etc/init.d/mysql start (重启restart)
------------------------------------------------------------------------------------------------------------
其中可能会遇到的一些问题总结:
当使用mysql时:
ERROR 2002 (HY000): Can't connect to local MySQL server
through socket '/tmp/mysql.sock' (2)
找不到mysql.sock(遇到类似问题的时候,可以通过linux命令:
find / -name mysql.sock)找到文件目录
然后修改打开my.cnf文件(在Mysql安装目录下面的配置文件)
[client]
socket = /var/lib/mysql/mysql.sock(一般find到的目录都是这个,默认存放)
创建符号连接:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
------------------------------------------------------------------------------------------------------------
修改Mysql用户名和密码:
----在没登录到数据库的时候,输入(在mysql安装目录下)./bin/mysqladmin -p xxx password cx
其中xxx是之前的密码,cx是修改后的密码
然后会出现警告 Warning: Using a password on the command line interface can be insecure.这表示已经改成功了。常见的误区:
 误区一:用原密码已经登陆到mysql了,再这么改就会报错。一定注意,直接在终端里,未登陆前改。
  误区二:将-p123456 写成 -p 123456.这样会报错的,-p后面不能带空格。
 误区三:password前面加了一个“-”.也是会报错。
----------------------------------------
通过Navicat Premium连接数据库
----可能会出现错误1 Error1: 2003:Can't connect to MySQL server on 'localhost' 
解决关闭linux防火墙:
chkconfig iptables off
reboot
 
-----错误2 Error2: 1130 - Host'ClientIP' is not allowed to connect to this MySQL server 
解决:登录mysql
 
在linux命令:grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
 
该命令是允许所有root用户,输入password登录该mysql server.
 
%就是代表所有主机用户,可以修改为单个ip(192.168.1.1只允许这个ip访问)
 
 

 

-------------------------------
接下来是使用的问题了,我在使用的时候遇到了DML操作失败,然后我发现linux中对字母的大小写要求是很严格的,
所以在windows下开发使用没问题,但是linux中就会出现错误。
在windows开发中也要注意这一点,尽量统一格式。特别是在数据库中,数据库中表是小写的,
但是我们在window环境下访问mysql它对大小写是不要求的。
----------------------其中还有一个重要的问题,那就是在我通过中文查询的时候,会出现得不到数据,
在window下面就可以获取到。我又去了解了相关知识,发现我在linux上安装mysql的时候字符集没有设置好,

 

也就是说字符集用的不是utf8。下面我们来修改一下:
登录mysql查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:
+--------------------------+----------------------------------+

| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
我们会发现其中database和server都是lantin1,并不是utf8
 
我们可以通过修改mysql中的my.cnf文件,linux命令; vi /usr/local/mysql/my.cnf
然后在里面添加:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
 
 
 
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
 
[mysql]
no-auto-rehash
default-character-set=utf8

 
其中mysql和mysqld是不一样的
 
重启mysql服务 service mysql restart
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值