MySQL启动过程的问题

service mysql start

启动MySQL

1、出现报错The server quit without updating PID file...

1.1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
#执行:
chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data
#然后重新启动mysqld!
1.2.可能进程里已经存在mysql进程

用命令“ps -ef | grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号“杀死,然后重新启动mysqld,或者强制停止mysql应用:killall mysql ,然后重新启动应用。

1.3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

去mysql的数据目录/data看看,如果存在mysql-bin.index,把mysql-bin.index文件删除

1.4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加

datadir = /data/mysql #添加MySQL数据库路径 (或:datadir = /usr/local/mysql/data)

1.5.skip-federated字段问题

检查一下/etc/my.cnf文件中有没有没被注释的skip-federated字段,把skip-federated相关字段注释掉

1.6.错误日志目录不存在

使用“chown” “chmod”命令赋予mysql所有者及权限

1.7.查看selinux是否没有关闭,如果是centos系统,默认会开启selinux
vi /etc/selinux/config
    \#SELINUX=enforcing  
    #注释掉
    \#SELINUXTYPE=targeted  
    #注释掉
    SELINUX=disabled  
    #增加 后保存并退出重启机器

二、插入mysql信息出现报错:ERROR 1062 (23000): Duplicate entry ‘@localhost.localdomain‘ for key ‘PRIMARY‘

由于重复插入了相同的字段数值,因此出现该报错。

2.1、可以使用下面的命令进行信息的更新:
UPDATE alias SET destination = ‘goodaccount@domain.com‘ WHERE source  = "@localhost";
2.2、删除信息 :
DELETE FROM alias WHERE destination = ‘email1@domain1.com‘ AND source  = "@localhost";

以管理员ROOT登录后,show grants for ‘user‘@’IP‘; 或者 select user from mysql.user; 确认用户账号是否存在。

#命令:
show grants for ‘jtsec‘@‘192.168.8.123‘; 
#返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘jtsec‘ on host ‘192.168.8.123‘

说明,没有jtsec用户,或者没有对jtsec用户进行在192.168.8.123远程访问的授权。

  1. 创建用户账号。
grant all privileges on *.* to [‘jtsec‘@‘192.168.8.123‘](mailto:‘jtsec‘@‘192.168.8.123‘) identified by ‘jtsec‘ with grant option;

flush privileges;

如果还是出现该错误,说明是该账户没有对192.168.8.123的远程访问权限。

  1. 直接查询mysql的user用户表

    select user,host from mysql.user;
    

    其中记录了每一个用户的权限信息

    mysql> select user,host from mysql.user;
    
  2. 授权为所有IP都使用用户root,密码root,来远程访问数据库

mysql> GRANT ALL PRIVILEGES ON *.* TO[‘root‘@‘%‘](mailto:‘root‘@‘%‘) IDENTIFIED BY ‘root‘ WITH GRANT OPTION;

mysql> flush privileges;
  1. 授权的查询 show grants for ‘root‘@‘%‘;

查询授权表记录

select user,host,password from mysql.user;

MySQL启动过程的问题

上一篇:MySQL优化


下一篇:【Mysql】主从复制