Linux安装mysql5.7.21可能遇到的问题归类

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的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因。


网站标题:Linux安装mysql5.7.21可能遇到的问题归类
文章位置:http://myzitong.com/article/jjsoss.html