linux环境安装mysql和使用中的常见问题

本文针对的环境是 centos 6.8   mysql 5.6.24版本

1.执行命令 service msyql status查看mysql运行状态时报错:MySQL is not running, but lock file

解决:移除锁文件,并把该lock文件位置设定;

rm  /var/lock/subsys/mysql 

lock file 在 /etc/rc.d/init.d/mysql 中设定修改lockdir

vi /etc/rc.d/init.d/mysql

2.重启mysql服务的时候 报错:

Starting MySQL........The server quit without updating PID [失败]/usr/local/mysql/data/mysql/hadoop102.pid).

解决:直接找到对应的文件进行查看pid文件,这个hadoop102.pid其实就是一个错误日志文件,也有可能叫hadoop102.err(hadoop102这里是你linux主机的名称)

cat   /usr/local/mysql/data/mysql/hadoop102.pid

当时我遇到的具体报错信息如图:

原因:其实这个是我当时设定默认编码格式的弄错了;

打开   vi /usr/my.cnf 文件(有的默认配置文件在/etc/my.cnf)

注释掉 default-character-set=utf8或者更改位置,写在client下就行

service mysql start  重启就好使了

针对设定编码格式的补充:

[client]下添加:default-character-set=utf8

[mysqld]下添加:character_set_server=utf8

3.启动mysql 服务的时候 报错 can't open the mysql plugin table

解决:其实就是启动找不到mysql 的数据文件。 mysql 的数据文件默认位置为 /var/lib/mysql

查看自己配置文件 vi  /usr/my.cnf 文件 datadir的配置

我自己配置的为  如图

因此针对这个问题,可以有两种解决方式:

1)将/var/lib/mysql  数据文件全部移到/usr/local/mysql/data 下 

mv  /var/lib/mysql /usr/local/mysql/data

2)修改my.cnf文件中,数据的存放路径,同时需要修改Mysql启动文件  /etc/rc.d/init.d/mysql  中datadir 

vi my.cnf 添加如下一行

修改MySQL启动脚本/etc/rc.d/init.d/mysql

vi /etc/rc.d/init.d/mysql

添加 datadir=/usr/local/mysql/data/mysql  ,如图

 

 

4. 在创建表时 报错[Err] 1071 - Specified key was too long; max key length is 767 byte

原因:MySQL的varchar主键只支持不超过768个字节 或者 768/2=384个双字节 或者 768/3=256个三字节的字段 ,而 GBK是双字节的,UTF-8是三字节的。脚本中有三个索引建立在了编码为GBK,varchar(500)的字段上,所以导致超过限定的长度。

解决:修改默认编码为utf8

[client]下添加:default-character-set=utf8

[mysqld]下添加:character_set_server=utf8

但是需要注意的是,在更改编码格式之前建立的数据库会保持创建时的编码格式,于是在更改数据库编码格式后,需要重新建立数据库!

5.在使用socket连接方式  报错:mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

1)可以修改smysql.sock 存放目录(my.cnf有的机器也在/etc/my.cnf下),想查找执行 whereis  my.cnf

vi /usr/my.cnf 

在【mysqld】下添加  socket =/usr/local/mysql/data/mysql/mysql.sock 

然后重启mysql 服务 

service msyql restart

2)连接时指定 socket目录

mysql -uroot -p123456 --socket='/usr/local/mysql/data/mysql/mysql.sock'

3)通过mysql.sock建立软连接在执行socket连接

ln -s /usr/local/mysql/data/mysql/mysql.sock /var/lib/mysql/mysql.sock

将我设定 的socket文件位置,在/var/lib/mysql下放置一份,以供读取

结果如图:

版权声明:本文为博主原创文章,转载请注明本页地址。https://blog.csdn.net/l1994m/article/details/88198640

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员lm

感谢您的支持,后续分享更多知识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值