linux安装mysql8(避坑)

1、从mysql官网下载mysql的tar包 ,下载地址:

https://dev.mysql.com/downloads/mysql/

 

根据自己的操作系统选择不同版本,比如我的linux是Red hat,而且centos版本是7  就选对应的,

linux查看系统版本

cat /proc/version
--或者
cat /etc/redhat-release

  

 

 

 2、通过 ssh secure file transfer 工具将本地下载的mysql tar包传输到/usr/local/mysql目录下

如果/usr/local目录下没有mysql文件夹,在/usr/local下新建mysql 文件夹

mkdir mysql

  3、进入/usr/local/mysql 解压

tar -xzvf mysql-8.0.27-el7-x86_64.tar.gz

  解压后会生成mysql-8.0.27-el7-x86_64文件夹,重命名该文件夹

mv mysql-8.0.27-el7-x86_64 mysql8.0

  进入/usr/local/mysql/mysql8.0 新建data文件夹,用于存放mysql数据

mkdir data

  

创建mysql用户和mysql用户组,执行

groupadd mysql

useradd -g mysql mysql

 例如:

改变mysql目录权限

chown -R mysql.mysql /usr/local/mysql/mysql8.0

  注意每个人安装mysql的目录可能不一样,要把/usr/local/mysql/mysql8.0 路径替换成你自己的

 

 

 初始化数据库之前 查看/etc目录下是否有mysql的配置文件 my.cnf

cat /etc/my.cnf

  这里的my.cnf等同于 windows文件夹里面的my.ini

如果没有这个文件夹 则跳过下面的直接执行第4 部。 如果有my.cnf文件夹,检查basedir和datadir以及其他涉及mysql存放路径的,都要改成你现在的mysql路径,比如我的是/usr/local/mysql/mysql8.0, 那么datadir=/usr/lcoal/mysql/mysql8.0/data , basedir=/usr/local/mysql/mysql8.0 

 

4、初始化

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql8.0 --datadir=/usr/local/mysql/mysql8.0/data 

  查看mysql8.0目录下是否生成 mysql-error.log文件,mysql临时密码存放在这里面

 

 

这时候使用 mysql -uroot -p 登录mysql会提示 command not found

因为系统默认会查找/usr/bin下命令,需要将mysql命令映射到/usr/bin下

cd  /usr/local/bin
ln -fs /usr/local/mysql/mysql8.0/bin/mysql mysql

  把/usr/local/mysql/mysql8.0 换成你自己的mysql目录

这样就可以执行 mysql -uroot -p 登录mysql 

密码输入刚才获得的临时密码

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
--刷新密码
flush privileges;

  

 

要是想在其他服务器远程登录该mysql

还需要修改root访问权限

grant all privileges on *.* to 'root' @'%' identified by 'root';
--或者
update user set host ='%' where user ='root' and host ='localhost'; flush privileges;

 

忘记密码 需要修改/etc/my.cnf, 在[mysqld]下添加一行

skip-grant-tables

  登录后修改密码

use mysql;
update user set authentication_string='' where user='root';

  然后退出,重启mysql 

service stop mysqld
--无法使用上面这行命令Stop mysql的时候,使用kill -9 来杀死mysqld进程
ps -ef |grep mysqld
kill -9 pid(进程号) --启动 sh ./support-files/mysql.server start 

不知道重启的时候 

systemctl restart mysqld.service命令为什么不能用

 

然后可以无密码登录

--登录后修改密码

ALTER USER ‘root'@‘localhost' IDENTIFIED WITH mysql_native_password BY ‘111111';
flush privileges

  注意:执行上面语句会出现  o rows affected

 

 

但是密码已经被修改了,不影响

 

posted on 2021-10-25 18:38  _vary  阅读(739)  评论(0编辑  收藏  举报