linux服务器 安装 MySQL8 数据库 并远程连接
最终效果展示:
具体步骤如下:
-
检查是否已经安装过mysql,执行命令:
rpm -qa | grep mysql
-
如果有显示信息,说明有残留文件,建议删除,删除命令:
rpm -e --nodeps <文件名>
-
再次执行第1步,查看是否已经删除。
-
查询所有mysql对应的文件夹,
find / -name mysql
-
直接删除所有mysql文件夹,
find / -name mysql | xargs rm -rf
-
查看是否删除完毕:
whereis mysql
显示:
mysql:
说明已完全删除。 -
检查mysql用户组和用户是否存在,如果没有,则创建:
cat /etc/group | grep mysql cat /etc/passwd | grep mysql groupadd mysql useradd -r -g mysql mysql
-
从官网下载用于linux的mysql安装包,使用wget下载命令下载(推荐):
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
上述命令可以根据官网的最新版本改动版本号。
也可以直接到官网下载传到服务器上,官方下载网站:https://downloads.mysql.com/archives/community/
一般选择linux-Generic通用版本。
-
解压命令:
tar xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
-
移动到/usr/local/下
移动 mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/ 进入目录 cd /usr/local/ 改名,不建议将mysql改成其他名字 mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
-
更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限:
chown -R mysql:mysql /usr/local/mysql chmod -R 755 /usr/local/mysql
可能要添加一步:删除my.cnf文件,因为mysql现在如果不提供my.cnf文件会使用默认参数。如果不想删除可自行修改my.cnf的文件参数。
删除命令如下:rm /etc/my.cnf
-
进入bin目录,初始化mysql,务必记住初始化给出的动态密码。
cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
如果报错说没有安装libaio.so.1的话,那么需要安装,安装命令:
yum install libaio*
-
测试启动mysql服务器
/usr/local/mysql/support-files/mysql.server start
-
添加软链接,这样可以在全局都可以使用service mysql命令:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 重启服务 service mysql restart
-
登录mysql,修改密码:
mysql -u root -p 输入刚刚给出的原始密码 ******* 执行以下sql语句更改密码: ALTER USER USER() IDENTIFIED BY 'yourpass'; flush privileges;
-
开放远程连接:
use mysql; update user set user.Host='%' where user.User='root'; flush privileges;
-
此时可以尝试使用远程工具连接服务器的数据库,记得需要开放mysql的3306端口,如果使用navicat的话可能还需要执行以下mysql语句:
登录mysql后
use mysql; alter user 'root'@'%' identified with mysql_native_password by '密码'(跟原密码相同即可,否则相当于更改密码); flush privileges;
-
常用命令:
[root@iZwz98mda8vl3ckiqudsdyZ etc]# service mysql Usage: mysql {start|stop|restart|reload|force-reload|status} [ MySQL server options ] service mysql start service mysql stop service mysql restart service mysql reload service mysql force-reload service mysql status