centos7 安装mysql和相关报错

由于yum install不能直接找到mysql的源,因此只能先wget镜像。

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

在进行这一步之前先执行rpm -qa | grep mysql,确保没有mysql相关的rpm文件,否则可能会导致失败,我删除了以下和mysql相关的文件:

rpm -e --nodeps mysql-community-client--5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-client-5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-release-5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-libs-5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-common-5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-server-5.6.48-2.el7.x86_64
rpm -e --nodeps mysql-community-release-el7-5.noarch

然后查看包含的版本。可以看到有8.0和5.7两个版本。这里我选择5.7版本。

yum repolist enabled | grep "mysql.*-community.*"

因此禁用8.0版本,启用5.7版本。

shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql57-community

报错:

Failed to start mysql.service: Unit mysql.service is masked

显示被标记,执行以下命令解除标记。

systemctl unmask mysql.service
systemctl start mysql.service

报错:

Failed to start mysql.service: Unit mysql.service is not found

在/etc/my.cnf中修改:

datadir=/var/lib/mysql/data
socket=/var/lib/mysql/data/mysql.sock

重启服务:

systemctl daemon-reload
sudo systemctl start mysqld.service

报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

/etc/my.cnf添加:

[client]
socket=/var/lib/mysql/data/mysql.sock

重启服务:

sudo systemctl restart mysqld.service
sudo systemctl status mysqld.service

显示状态如下:

[root@GPUNode run]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-18 04:47:08 EDT; 7s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 86077 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 86053 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 86079 (mysqld)
    Tasks: 27
   CGroup: /system.slice/mysqld.service
           └─86079 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Jun 18 04:47:06 GPUNode systemd[1]: Starting MySQL Server...
Jun 18 04:47:08 GPUNode systemd[1]: Started MySQL Server.

表示成功。

然后执行以下指令进入mysql -uroot -p。报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

可能我忘记密码了。需要执行下面命令修改密码:

sudo systemctl stop mysqld.service #关闭服务
mysqld --user=root --skip-grant-tables &
mysql #无密码进入mysql
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('111111') where USER='root'; #修改密码
mysql> flush privileges; #刷新权限
mysql> exit
然后在执行:mysql -uroot -p
Enter password:******

在重启服务的时候,显示状态为activating,查看log发现报错:

[ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
[Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

查看后台进程是否包含mysql,导致进程占用:

ps -aux | grep "mysql"

kill掉mysql相关的进程号即可,重启成功。

在使用mysql时候会报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

表示之前设置的密码失效了,首先在/etc/my.cnf中设置:

#设置用户密码永不过期
default_password_lifetime=0

重启服务,然后在mysql -uroot -p进入mysql命令行中:

set global validate_password_policy=0;
set global validate_password_length=2;
alter user 'root'@'localhost' identified by '123456';
flush privileges; 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值