1、Done with "file /usr/share/mysql/czech/errmsg.sys from install of mysql-community-common-5.7.9-1.el6
解决方案:删除原来的包,重新安装。
yum -y remove mysql-libs-*
2、安装数据库 初始化(这里是以root身份执行的):bin/mysqld --initialize --user=mysql
报错 [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步,就可以解决这个问题了。
注: 第四步是刷新MySQL的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因。