本来不准备写Mysql安装的文章的,结果昨天不小心把阿里云上的mysql给卸载了,然后按照网上的步骤各种安装发现出现各种问题,安装了很多遍找到了很多博客综合起来才安装成功,想想还是自己记录下来吧,下次用的时候省得各种找了。
1、环境说明
阿里云centos7或者centos8,mysql5.7.30
需要mysql的可以到我百度网盘下载:链接:https://pan.baidu.com/s/1mG3VFLwifrMCeuc6gs2prw
提取码:r20v
2、上传然后解压,我都是放在/home/software路劲下
tar -xvf mysql-5.7.30-el7-x86_64.tar.gz mysql-5.7.30-el7-x86_64/
3、解压后的文件夹名字太长,重命名为mysql
mv mysql-5.7.30-el7-x86_64 mysql
4、修改my.cnf配置文件,如果/etc下没有my.cnf则自己创建一个,然后把下面的内容复制进去。
mysql运行会产生一些数据,我这里是在mysql的解压文件夹中创建了一个data文件夹,mkdir data。然后my.cnf中basedir、 datadir、log-error、pid-file对应的路径你可以替换成你自己创建的data文件夹。
vim /etc/my.cnf
5、进入mysql的bin目录下执行初始化命令
cd /home/software/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/home/software/mysql/ --datadir=/home/software/mysql/data --initialize
6、执行初始化以后到data下的mysql.err下找到生成的临时密码,就是下图中的红圈选中的,找到以后记下来,后面要用到。
cat /home/software/mysql/data/mysql.err
7、将mysql.server拷贝到/etc/init.d/mysql下,如果该路径下已经有了就会出现下图的提示
cp /home/software/mysql/support-files/mysql.server /etc/init.d/mysql
8、进入/etc/init.d,然后启动mysql,出现下图标识则代表启动成功了正在运行
cd /etc/init.d/
service mysql start
systemctl status mysql.service
9、启动以后修改mysql的密码,这时候就需要上面的临时密码了,进入mysql的bin目录,然后输入下面的命令根据提示输入临时密码进入mysql服务器
./mysql -u root -p
10、输入以下命令进行密码的修改
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
11、这个时候你用navicat登录可能会发现还是登录不了,出现以下画面
可能有两个原因导致该问题,一个是mysql没有允许登录,那么你可以执行以下的命令:
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
12、如果执行了上面的命令再用navicat连接还是提示不允许连接,那么就看你的阿里云配置了安全组没有,阿里云默认不会暴对外暴露3306端口的,你得自己配置安全组,将3306对外暴露。我的阿里云就是没有配置安全组。
登录阿里云,然后控制台-->云服务器ECS-->实例-->管理
找到安装mysql的那台实例然后点击本实例安全组-->加入安全组--》配置规则-->手动添加,把3306端口暴露就行了
13、navicat测试连接,发现ok了