1,我们的项目,是一个springboot项目,redis,mq,tomcat,以及我们的项目,都是放在docker中的,但是为什么mysql不安装在docker中呢? 最重要的原因,mysql是存数据的,docker有一个缺点,当移除容器,容器中的东西全没了,如果把mysql安装在docker中,是非常不安全的,万一服务器出现问题,所有的数据都找不回来了,所以,不建议把mysql安装在docker中!
2,下面我们来说说mysql的安装
第一步,进入mysql官网,找到你要安装的myswl版本https://dev.mysql.com/downloads/repo/yum/
点击download,进入如下页面,
笔者用的谷歌浏览器,在如图所示未知单击右键,复制链接地址,
如图所示,我们把复制的链接地址放到浏览器中,能清晰地看到这个地址,接下来,进入到你的服务器中,cd到你要安装的目录,wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
如图所示,我们看到已经完成,接下来,yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
执行安装,
经过一顿操作猛如虎之后,我们看到已经complete了!这里需要注意的是,yum -y localinstall 后面的版本,一定要跟你wget下来的是一样的!
接下来,我们来查看一下mysql的版本号mysql -V命令
我们来启动mysql,命令 systemctl start mysqld
查看mysql运行状态systemctl status mysqld
我们看到mysql是active的,running状态
我们来设置mysql开机自启,命令systemctl enable mysqld
因为mysql是我们新安装的服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。 命令systemctl daemon-reload
mysql安装完成之后会生成一个默认密码在/var/log/mysqld.log文件中,要登录mysql,必须先获取这个密码。
获取文件:如果是打开文件后,在命令行下输入"/要搜索关键字"
当然你也可以在不打开文件的情况下看到这个,使用cat命令,cat 文件名 | grep "关键字"
在这里,我们使用cat /var/log/mysqld.log | grep password
我们看到了初始密码
在这里,我尝试用navicat远程连接了一下我们新安装的mysql,发现连不上,是为什么呢?因为我们还没有开启远程连接,当前mysql我们只能在本机上使用。
既然这样,那我们待会把它开启远程连接就好了,我们先用刚才看到的密码登录mysql,命令 mysql -u root -p
当我们输入这个命令之后提示我们输入密码,把刚才看到的密码拷贝下来右键,回撤,ok,进来了
然后我们首先要做的就是修改初始密码;
三个命令供参考,分别是:
set password = password('要修改成的密码');
UPDATE user SET Password = 'new-password' WHERE User = '要修改成的密码';
ALTER USER 'root'@'localhost' IDENTIFIED BY '要修改成的密码';
这里我们选择了第三条命令,提示我们此密码不满足当前mysql的策略?呃呃呃呃呃,查了一下资料,版本不同策略还不同,这里我们安装的是5.7版本的,使用下面两条命令修改策略,
set global validate_password_policy=0;
set global validate_password_length=1;
还不错,两条命令都ok了,那就好,那我们再来尝试修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '要修改成的密码';
我们看到已经ok了,这里我们已经修改了mysql root用户的密码,我们flush一下,flush privileges ;
然后,我们退出mysql,尝试用新密码进入一下,exit;
mysql -u root -p
我们看到已经进来了,说明修改密码成功。
接下来,我们来开启一下远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的数据库密码' WITH GRANT OPTION;
执行完这句,我们看到ok了,当然,我们还是要flush一下flush privileges;
接下来,理论上,我们可以用navicat可视化连接mysql了,我们来试一下。
输入ip地址,默认用户名root,密码,保存,双击刚刚添加的连接,呃呃呃呃呃,我们发现,过了大概二十秒,出现
奇怪,明明开启了远程连接,为什么还是不行呢??
我们来查看一下3306端口运行状态 netstat -aptn |grep -i 3306
我们看到,3306端口是活的,running状态,不应该啊,再想想....
会不会是防火墙没有关呢?我们来查看一下防火墙状态 systemctl status firewalld
这个不查不知道,一查吓一跳啊,还真是,防火墙running的,赶快关掉试试, systemctl stop firewalld
我们看到没有输出,那作为我呢,不报错,我就认为没错,我们来尝试连接一下,
连接成功!连接成功!连接成功!
终于成功了,这就说明可以用了,那大家不要忘记,万一服务器关了,再开,防火墙会自动打开,这时候又会出现访问不到的情况,所以,一定要永久关闭防火墙。 systemctl disable firewalld
好了,到这里,今天的文章就写完了,我是Frank_lins,文章底部有我的微信,欢迎交流。谢谢大家的查看,感谢!如果觉得还不错,或者你觉得对自己有用,欢迎转载!
ps:第一次写博客,有很多不对之处,欢迎大家交流改成,谢谢。