启动mysql服务
# service mysqld start
出现错误:
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.The server quit without updating PID file (/home/mysql/data[FAILED]bg07o4k7e5y3gabZ.pid).
如下图:
问题分析:
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
var/lib/mysql”目录不存在 所以之前配置的my.cnf的socket配置无效 导致无法生成mysql.sock文件
解决办法:
Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件!
1、创建/var/lib/mysql目录
执行命令:mkdir /var/lib/mysql
2 给目录 /var/lib/mysql 写入权限或者最大权限 我这里是直接给的最高权限
执行命令:chmod 777 /var/lib/mysql
最后重启mysql
执行命令:service mysqld start
完美运行:
问题2:登陆时候出错
# mysql -uroot -p123456
出现错误:ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: yes)
问题分析:这个错误是由密码错误引起,解决的办法自然就是重置密码
解决办法:重置密码
1、跳过MySQL的密码认证过程 找到/etc/my.cnf这个配置文件 在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示
2、重启mysql
# service mysql restart
查看mysql是否启用
# service mysql status
3、重启之后输入#mysql即可进入mysql
4、用sql来修改root的密码
MySQL5.7和之前的用户修改密码方式:
mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit
而我装的是8.0的所有修改的方式不同
CREATE USER 'root'@'localhost' IDENTIFIED BY 'gitlab!@#';
但也报错了 返回的错误是:ERROR 1396 (HY000): Operation CREATE USER failed for 'gitlab'@'localhost'
网上找了好多种办法都不行
最后看到一个大神说使用 drop user 才可以解决这个问题
mysql> drop user rootr@localhost;
mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'gitlab!@#';
果然完美解决了!
5、最后把刚才/etc/my.cnf文件的skip-grant-tables用#注释掉 重启mysql service msyql restart 就可以用刚才第四步的密码登陆了