这是一篇记录我在云服务器上安装mysql的文章。因为不懂linux,怕后续漏掉什么步骤,记录的比较详细。
先下载wget,为后续下载mysql做准备
yum -y install wget
之后,我们打开浏览器去网易开源镜像站
里找到linux版本的mysql。怕小伙伴们不知道怎么找,我把链接也直接放在这里,找到对应版本,右键复制链接即可。
为方便管理,我们可以把包都下载到/usr/local/文件夹下。
wget我们复制的链接,这里mysql的包比较大,可能会花一些时间,等待即可。
cd /usr/local
wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
下载完成以后,我们可以使用ls命令查看一下,看到包名字就是成功了。
下载之后,我们把mysql的压缩包解压(输入mysql名称时可用tab键补全)
//tar xvf 压缩包名称
tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
这时候我们可以ls查看一下,这时候解压出来的包名称比较长,不方便我们后续操作。
将mysql文件夹更改名称
//mv 原文件夹名称 更改后文件夹名称
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql
进到mysql根目录创建data与log文件夹,并在log文件夹里创建mysql.errlog,用于存放数据与报错信息。
cd /usr/local/mysql
mkdir data log
cd log && touch mysql.errlog
更改mysql用户组和mysql用户
groupadd mysql
useradd -g mysql mysql
改变mysql⽬录权限
chown -R mysql:mysql /usr/local/mysql
这时候我们返回mysql根目录输入ll命令,则也可以看见所有的权限都变成了mysql
输入vi /etc/my.cnf修改配置文件
vi /etc/my.cnf
vi进入配置文件后,我们可以按a键进入insert模式开始修改,左下角有一个INSERT
就代表可以修改。
我们这里需要替换配置信息里的配置,将这几段话分别替换这两个部分的代码。(我这里是已经替换好了的截图)
修改好之后,先按Esc键然后按:wq
保存并退出编辑。(如果我们不小心修改错了配置,也可以使用:q
不保存退出)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/log/mysql.errlog
pid-file=/usr/local/mysql/data/$hostname.pid
上面的操作都是帮我们初始化数据库做好准备。
接下来输入需要我们进入mysql的bin目录下执行以下语句
cd /usr/local/mysql/bin/ //如果已经在mysql下了,直接cd /bin也行
/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
成功了以后这里会生成mysql的密码,复制保存下来,之后会用到。
如果失败了
,例如下面这种情况,则有可能是centos版本的问题,缺少libaio.so.1文件。
我这里下载的是centos7.5的版本,初始化没有这个文件。
whereis libaio.so. // 查找一下这个文件是否存在
yum install -y libaio //下载这个包即可
这时候我们再使用之前初始化的代码就成功了。
这时候在mysql根目录下,配置mysql自启动服务
cp -a ./support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql //添加mysql服务
chkconfig --list mysql //检查mysql服务是否设置成功
这样就是成功了
创建软连接。方便我们在任何目录下使用mysql
ln -s /usr/local/mysql/bin/* /usr/bin/
登录数据库(密码是之前随机生成的,复制过来即可)
mysql -uroot -p
修改密码 注意:下面的语法最后都要带一个分号
mysql> alter user 'root'@'localhost' identified by '这里的mysql新密码';
mysql> flush privileges; //刷新权限
mysql> quit;退出登录
开启远程服务
//这里之前只有localhost才能访问数据库,更改之后可远访问
mysql> update user set host='%' where user='root';
mysql> flush privileges; //刷新权限
mysql> quit; //退出
firewall-cmd --list-ports //查看已开放端⼝
//我这里的防火墙默认没有开启,所以需要先打开防火墙
systemctl start firewalld //开启防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent //开放3306端⼝,mysql默认端口号
firewall-cmd --reload //重启防火墙
再次查看端口,就可以看到,我们这里已经开启了3306的端口
到这一步差不多大功告成了,正当我打算用Navicat远程连接云服务器上的mysql时,却发现还是连不上…
这是为什么呢?阿里云服务器上有一个安全组,需要我们手动设置入站规则,开放3306端口。
在开启了这个入站端口后,发现可以成功连接了。