当前位置:Gxlcms > 数据库问题 > MySQL启动过程的问题

MySQL启动过程的问题

时间:2021-07-01 10:21:17 帮助过:24人阅读

service mysql start

启动MySQL

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

1.1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
  1. <code class="language-powershell">#执行:
  2. chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data
  3. #然后重新启动mysqld!
  4. </code>
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
  1. <code class="language-mysql">vi /etc/selinux/config
  2. \#SELINUX=enforcing
  3. #注释掉
  4. \#SELINUXTYPE=targeted
  5. #注释掉
  6. SELINUX=disabled
  7. #增加 后保存并退出重启机器
  8. </code>

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

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

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

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

  1. <code class="language-mysql">#命令:
  2. show grants for ‘jtsec‘@‘192.168.8.123‘;
  3. #返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘jtsec‘ on host ‘192.168.8.123‘
  4. </code>

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

  1. 创建用户账号。
  1. <code class="language-mysql">grant all privileges on *.* to [‘jtsec‘@‘192.168.8.123‘](mailto:‘jtsec‘@‘192.168.8.123‘) identified by ‘jtsec‘ with grant option;
  2. flush privileges;
  3. </code>

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

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

    1. <code class="language-mysql">select user,host from mysql.user;
    2. </code>

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

    1. <code class="language-mysql">mysql> select user,host from mysql.user;
    2. </code>
  2. 授权为所有IP都使用用户root,密码root,来远程访问数据库

  1. <code class="language-mysql">mysql> GRANT ALL PRIVILEGES ON *.* TO[‘root‘@‘%‘](mailto:‘root‘@‘%‘) IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
  2. mysql> flush privileges;
  3. </code>
  1. 授权的查询 show grants for ‘root‘@‘%‘;

查询授权表记录

  1. <code class="language-mysql">select user,host,password from mysql.user;
  2. </code>

MySQL启动过程的问题

标签:mysql-bin   use   插入   lda   host   dom   ldo   roo   rom   

人气教程排行