注:我的安装环境是centos7系统
目录
1. 检查是否已经安装了mariadb
2. 下载mysql包
3. 将压缩包解压到目标目录下
4. 安装mysql包
5. 修改配置文件
6. 启动mysql
7. 修改密码
8. 开启远程访问权限
9. 添加开放端口
10. mysql的免密登录
运行:rpm -qa | grep mariadb
如果有程序出现,说明已经安装了mariadb,那么我们将之删除
运行:sudo rpm -e mariadb-libs --nodeps
如果没有下载wget,先下载wget:yum install -y wget
运行:
sudo wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar
解压的目标目录建议家目录
创建对应的文件:mkdir mysql-8.0.31
将文件解压到对应目录:tar -xvf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.31
安装perl,运行:yum install -y perl.x86_64
进入存放mysql的目录里:mysql-8.0.31
运行以下代码:
rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm --nodeps --force
运行:sudo vi /etc/my.cnf
在文件末尾添加:log_timestamps = SYSTEM
保存退出
运行数据库:systemctl start mysqld
查看数据库状态:systemctl status mysqld
active表示正常运行
先查看数据库初始的随机密码,执行:cat /var/log/mysqld.log|grep password
输入密码进入数据库,密码为上次操作看到的初始密码,执行:mysql -u root -p
修改密码,执行:alter user 'root'@'localhost' identified by 'xxxxxxxx';
注意这条指令是在mysql数据库里面的指令,所以结尾必有要有 ';' 这个分号
密码要求必须包含有大小写和特殊符号,此处用'x'代替密码,需要自己设定
密码设置成功会出现 Query OK 这个提示,否则需要重新执行修改密码指令
注:以下指令结尾的分号不可省略
选择名为mysql的库:use mysql;
更新其中的数据:update user set host='%' where user='root';
给远程账户授权:Grant all privileges on root.* to 'root'@'%';
设置密码,这里的密码和上一步修改的密码一样:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';
刷新权限:flush privileges;
退出mysql:exit;
查看端口:firewall-cmd --list-ports
添加mysql的默认端口3306:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:firewall-cmd --reload
设置免密登录并非必要操作,只是为了提高便利性
若不设置免密登录,则每次登录需要输入指令:mysql -u root -p ,再输入密码登录
若设置了免密登录,则每次登录只需输入指令:mysql 则可直接进入数据库
打开文件:sudo vi /etc/my.cnf
在文件末尾添加:skip-grant-tables
保存退出,重启数据库:service mysqld restart
注:一些远程连接的元件可能并不支持免密登录,可以视情况选择是否设置免密登录