一、首先下载mysql
去官网MySQL,找对应版本下载
这里直接下载https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar
二、解压,安装
文件在/mnt/sofware下执行解压
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
改个名字(mysql8.0.30)
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql8.0.30
进入bin目录进行安装
cd mysql8.0.30/bin
./mysqld --user=root --basedir=/mnt/sofware/mysql8.0.30 --datadir=/mnt/sofware/mysql8.0.30/data --initialize
留意最后一句,有临时密码
2022-09-29T23:59:13.178894Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: apcP?J<q/6jy
三、修改启动参数、启动并且修改账号密码
编辑/etc/my.cnf文件
[mysqld]
basedir = /mnt/sofware/mysql8.0.30
datadir = /mnt/sofware/mysql8.0.30/data
socket = /mnt/sofware/mysql8.0.30/mysql.sock
port = 3306
user = root
#密码忘记时候可以开启skip-grant-tables,进入
#skip-grant-tables
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /mnt/sofware/mysql8.0.30/mysql.sock
basedir 根目录
datadir数据目录
这里user直接用root,如果用其它账号,记得需要把datadir目录授权给对应用户,不然有权限问题。
保存,然后启动,直接进入bin目录执行./mysqld
启动成功之后,登录mysql 。在这之前建立软链接,不然mysql命令识别不了
#添加服务,可选,这样便捷启动服务
ln -s /mnt/sofware/mysql8.0.30/support-files/mysql.server /etc/init.d/mysql
#mysql 命令识别
ln -s /mnt/sofware/mysql8.0.30/bin/mysql /usr/bin/mysql
然后可以用mysql命令了
mysql -u root -p
一开始是没有建软链接的,识别不到。
好了,现在登录可以看到需要密码,密码就是上面初始化最后给的临时密码。
修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '123';
flush privileges;
这个版本不是用password函数设置密码(set password for root@localhost = password('123'))。
接着,修改root可远程访问数据库,切换到mysql库,修改、刷新。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
ok,连接成功。
总结
1、容易出错点,在第一次进入mysql设置密码
2、其它ip想连接记得修改用户的host为%