下载
MySQL官网:MySQL :: MySQL Downloads
我选择的是Linux通用版本,下载min包(具体根据自己的实际信息选择):
安装
解压
将下载的tar包上传到服务器,解压
tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar
解压后会有三个文件,这里用到的是第一个,解压 ,并对解压后的文件夹重命名
- mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
- mysql-router-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
- mysql-test-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.36-linux-glibc2.17-x86_64-minimal mysql-8.0.36
进入到安装目录,创建存储文件
cd /usr/local/mysql-8.0.36/
mkdir data
创建用户组和用户
创建用户组和用户,并给用户赋予权限
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql-8.0.36/
初始化MySQL
切换到bin目录,初始化MySQL基本信息
cd bin/
./mysqld --user=mysql --basedir=/usr/local/mysql-8.0.36 --datadir=/usr/local/mysql-8.0.36/data/ --initialize
然后会看到生成了一个临时密码(密码要记下来,后面会用到)
将MySQL服务添加到系统中
- 将MySQL服务添加到系统
cp -a /usr/local/mysql-8.0.36/support-files/mysql.server /etc/init.d/mysql
- 授权以及添加服务到chkconfig列表
//增加mysql文件的可执行权限
chmod +X /etc/init.d/mysql
//把服务添加到chkconfig列表
chkconfig --add mysql
创建配置文件
- 创建my.inf文件(MySQL的配置文件,用于保存MySQL服务器的各种配置参数)
[mysqld]
basedir=/usr/local/mysql-8.0.36
datadir=/usr/local/mysql-8.0.36/data
socket=/tmp/mysql.sock
log_error=/var/log/mysql.log
log_bin=/usr/local/mysql-8.0.36/mysql-bin
binlog_format=row
skip-name-resolve
server_id=172
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[client]
socket=/tmp/mysql.sock
- 设置my.cnf文件的权限
sudo chmod 664 /etc/my.cnf
启动MySQL
service mysql start
登录
- 创建软链接
//系统默认会查找/usr/bin下的命令,如果命令不在这个目录下,会报错bash: mysql: 未找到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
ln -s /usr/local/mysql-8.0.36/bin/mysql /usr/bin/
- 登录
//使用前面的密码登录
mysql -uroot -p
可能出现以下错误:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
解决方法:可以直接安装缺失的文件
yum install libncurses* -y
- 继续,重新登录
//使用临时密码登录
mysql -uroot -p
//进入到MySQL,依次执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
quit;
//使用新密码登录,验证是否修改成功
mysql -uroot -p123456
至此,安装完成,可以使用Navicat等工具远程连接。
Navicat连接
配置好连接信息,测试连接,可能会提示如下错误:
解决:执行SQL语句,设置允许root用户在所有IP上登录
mysql -uroot -p123456
use mysql;
//允许所有IP连接
update user set host = '%' where user ='root';
flush privileges;
user和host的对应关系是:用户允许在哪个IP上登录。比如第一行,意思是所有IP都可以使用root用户登录,原来root对应的是localhost,这里是已经改过的。
生产环境建议不要用%,host=%代表的是所有IP都有连接权限,可能存在安全问题,可以具体到所使用的IP。
注意:如果用的是云服务器(我这里用的是华为云),记得去设置开放3306端口
最后大功告成,连接成功!
看到此处即是情,别忘记点个赞哦。如果有其他问题,欢迎评论,共同探讨!!!