原本网上已经有类似文章了,请见[https://blog.csdn.net/qq_41813208/article/details/102828922]。
但是半年过去了,与现实有些出入,找bug坑了我一下午,所以决定自己动手记录下来,留作分享。
如果中间操作出错,请删除mysql下生成的data文件夹,然后从第四步重新开始。
第一步、到官网下载mysql-8.0.19-linux-XXXXXXX86_64.tar.xz,注意后缀。下载地址
https://dev.mysql.com/downloads/file/?id=492457
第二步、解包
找到下载好的64位mysql安装包
sudo tar -xJvf mysql-8.0.18-linuxXXXXXXx86_64.tar.xz
移动到指定位置:一定要这个位置,原因是在mysql配置文件中写死了,这样的好处是可以直接用默认文件启动mysql服务
sudo mv mysql-8.0.18-XXXXXXx86_64/ /usr/local/mysql
第三步、创建mysql用户(安全起见)
sudo useradd -r -s /bin/false mysql
第四步、生成root密码并打印密码(在/usr/local/mysql 目录下执行)
首先 cd 进入解压缩的文件夹内
cd /usr/local/mysql
然后执行初始化mysql的密码========>注意这里会获得root密码
sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
启动mysql服务
sudo ./support-files/mysql.server start
登录mysql服务器修改root密码
./bin/mysql -u root -p
将上面获得的密码通过右键粘贴进去登录到mysql
修改root密码
alter user 'root'@'localhost' identified by '123456';
先换表
use mysql;
允许远程登录
update user set host = '%' where user = 'root';
授权(8.0版本和以前的不一样)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
下面的这条命令是让navicat等客户端连接mysql的建议执行一下(重点啊,这里不一样了)
ALTER USER'root'@'%'IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
先退出mysql
quit
第五步、配置环境变量,让mysql可以在任何位置下都可以直接执行
sudo vim /etc/profile
将下面的代码添加到文件末尾
#MYSQL_HOME
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
一定要记得刷新配置然后环境变量生效
source /etc/profile
第六步、开机自启服务
将mysql的默认脚本复制到/etc/init.d 取名叫mysqld就可以全局通过service mysqld start手动启动
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
执行service mysqld start相当于手动开启mysql,将他添加到开机自启服务中
下面是让开机时自动执行这条命令
sudo vim /etc/rc.local
添加内容
#!/bin/bash
#
#rc.local config file created by use
service mysqld start
exit 0
给予执行权限
sudo chmod +x /etc/rc.local
然后重启即可!