以下操作在Centos7.6上实操成功。
一、卸载MySQL(不做阐述)
一定要卸载干净
二、安装
1、yum安装
1.1、下载mysql库(要连网)
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
1.2、安装mysql库
yum -y install mysql80-community-release-el7-3.noarch.rpm
1.3、重新获取mysql的GPG(不执行的话下一步yum安装会报错)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
1.4、安装mysql(默认安装mysql8.0)
yum -y install mysql-community-server
2、本地安装
2.1、安装包下载
下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar
2.2、 新建目录
在/usr/local目录下新建目录mysql
cd /usr/local
mkdir mysql
cd mysql
2.3、上传安装包
利用WinSCP上传更方面
2.4、安装MySQL程序包
2.4.1、先解压
tar -xvf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar
得到文件如下图:
依次安装以下4个文件
rpm -ivh mysql-community-common-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-server-8.0.31-1.el7.x86_64.rpm --nodeps --force
2.5、查看已安装的MySQL
rpm -qa | grep mysql
看到这4个文件就是安装成功了
2.6安装libaio
yum -y install libaio
如果不安装直接初始化会报错:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
2.7、初始化
初始化之前
mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --datadir=/var/lib/mysql;
chown mysql:mysql /var/lib/mysql -R;
1、初始化加上lower-case-table-names=1为了设置mysql不区分大小写(lower_case_table_names=1 参数缺省地在 Windows 中这个选项为 1 ,在 Linux中为 0,因此在window中不会遇到的问题,一旦一直到linux就会出问题)
2.8、修改配置文件
vi /etc/my.cnf
按[i]进入可编辑状态
在[mysqld]下加入一行:lower_case_table_names=1
按[Esc]后按[:wq]写入文件
三、启动mysql
3.1、启动
systemctl start mysqld;
3.2、查看mysql服务运行状态
service mysqld status
3.3、查看root临时密码
grep "A temporary password" /var/log/mysqld.log;
cat /var/log/mysqld.log | grep password
ps:如果为空,直接登陆
3.4、更改临时密码
mysql -uroot -p
提示输入密码,输入临时密码后显示登录成功
然后执行语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
若提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码不符合当前策略)
修改密码策略,一般为大小写字母+数字+特殊符号
3.5、设置root账号远程访问
按照以下顺序依次输入
select user,host,plugin from user; (查询表)
update user set host = '%' where user = 'root'; (设置root任意地址访问)
flush privileges; (刷新生效)
exit(退出mysql)
四、开放3306数据库默认端口(远程登录要开)
systemctl status firewalld
ps:检查防火墙是否开启,如没运行,执行-- systemctl start firewalld
firewall-cmd --permanent --add-port=3306/tcp(永久添加3306端口)
firewall-cmd --reload(刷新生效)
firewall-cmd --list-ports(非必要操作,检查是否开启端口)
五、验证登录
本地验证登录
navicat16远程登录mysql成功
部分人远程登录不上是因为策略的原因,添加3306端口即可。
搞定收工!!!!