报错 [ERROR] --initialize specified but the data directory has files in it. Aborting. 解决方案:密码初始化不成功 修改初始化密码 方法一: # /etc/init.d/mysqld stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & # mysql -u root mysql # mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; mysql> FLUSH PRIVILEGES; mysql> quit # /etc/init.d/mysqld restart # mysql -uroot -p Enter password: <输入新设的密码newpassword> mysql> 注意 【’newpassword’ ’root’ 】 ERROR 1054 (42S22): Unknown column '’root’' in 'where clause' 将单引号更新为双引号
注意 【Password】 ERROR 1054 (42S22): Unknown column 'password' in 'field list' mysql> ERROR 1054 (42S22): Unknown column 'password' in 'field list' 错误原因:mysql数据库下已经没有password这个字段了,password字段改成了authentication_string。 update mysql.user set authentication_string=PASSWORD('password') where User='root';
3、启动数据库服务 MySQL Daemon failed to start. 服务启动失败 3.1、查看mysqld的log文件 # less /var/log/mysqld.log /usr/libexec/mysqld: Can't change dir to ‘XXX' (Errcode: 13) 3.2、首先是查看数据库日志 mysqld started [Warning] Can't create test file xxx.lower-test [Warning] Can't create test file xxx.lower-test /usr/libexec/mysqld: Can't change dir to '/xxx' (Errcode: 13) [ERROR] Aborting 首先检查数据目录和日志目录的权限和所属用户,权限和所属用户都没问题,那应该是SELINUX的权限限制了。 3.3、先查看当前配置信息. # getenforce Enforcing 就表明SELinux已经启用.只需要关闭即可。 关闭方法: #setenforce 0 (0|1 开|关) 或者 setsebool ftpd_disable_trans 1 命令也可以. 3.4、查查数据库日志会出现 mysqld started 2018-04-17T03:48:30.343457Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! 2018-04-17T03:48:30.345407Z 0 [ERROR] Aborting 错误:Please read "Security" section of the manual to find out how to run mysqld as root! 根据提示,查了 /opt/redmine-1.2.1-1/mysql/docs/mysql.info的Security部分,发现是因为MySQL为了安全,不希望root用户直接启动mysql。 解决方案 1、root用户进行强制启动;在启动过程中,加入参数:--user=root 【service mysqld start --user=root】 2、修改 /etc/init.d/mysqld 137 $exec $MYSQLD_OPTS --datadir="$datadir" --socket="$socketfile" / --pid-file="$mypidfile" / --basedir=/usr --user=mysql $extra_opts >/dev/null & safe_pid=$! 将mysql 更新为 root
4、登录数据库报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement.直接执行: set password=password('密码');
5、远程登录报错 Host is not allowed to connect to this MySQL server先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了, 解决方法如下: 1. 在装有MySQL的机器上登录MySQL mysql -u root -p密码 2. 执行use mysql; 3. 执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。 4. 执行FLUSH PRIVILEGES; 经过上面4步,就可以解决这个问题了。