2024年1月 远程Linux(Ubuntu)服务器上使用普通用户(非root用户)安装mysql8.0.36


前言

之前liinux上安装过好几次mysql,但是都是用root用户安装的,而且一直没有记录过,每次安装还都得去现查。这次实习期间公司服务器上给的账号不是root用户,并且服务器上已经装了一个mysql,但是因为原mysql版本太老且为了和原来的数据做区分,本次记录一下使用普通用户如何在liinux上安装mysql8.0.36。


一、安装包下载

进入mysql官网https://dev.mysql.com/downloads/mysql/,在本地windows系统上先通过mysql官网下载安装包。根据需求选择需要的mysql版本,以及服务器系统,本文所用linux服务器是ubuntu系统,下载的是如下图的版本。
在这里插入图片描述这里有一个要注意的是下载的glibc的版本,一开始我下载的glibc是2.28,但是所用服务器可能比较老,没支持这个动态库,在后面开始安装mysql数据库时会报如下的错误。

xxx/libstdc++.so.6:version `CXXABI_1.3.11' not found
xxx/libstdc++.so.6:version `GLIBCXX_3.4.22' not found
xxx/libm.so.6: version `GLIBC_2.27' not found
xxx/libm.so.6:version `GLIBC_2.28' not found
xxx/libm.so.6:version `GLIBC_2.25

在网上查了半天想更新一下动态库,但是因为没有root用户的权限想更新动态库还比较困难,最后选择了glibc2.12的版本就正常了,所以建议先看一下服务器上的glibc版本再下载。
然后将本地的安装包上传到服务器上。我是直接用的pycharm连的服务器,然后通过拖拽就把安装包传到服务器上了,也可以使用filezilla等工具。

二、安装过程

1.解压缩安装包

解压代码如下:

tar -xvf mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz

之前看了几篇博客压缩包后缀名都是.gz,目前因为mysql官网更新了,后缀名现在是.xz,感兴趣的话可以搜一下二者的区别。
解压缩过程中终端会有一堆文件路径输出,结束之后会在当前目录创建一个解压缩出来的文件夹(这个图的glibc还是之前2.28的)。
在这里插入图片描述
原文件名字太长,直接改成mysql简单点。

mv mysql-8.0.36-linux-glibc2.12-x86_64 mysql

2.新建用户并修改权限(普通用户可以直接跳过,如果是root用户要新建)

如果当前用户是root用户,出于安全考虑,一般要新建一个用户组mysql和用户mysql。
先检查是否有mysql用户组和mysql用户,有可以忽略。

groups mysql 

没有的话新建用户组mysql和用户mysql,然后给mysql用户前文所改名的mysql文件夹的权限。

groupadd mysql && useradd -r -g mysql mysql
chown mysql:mysql -R mysql

3.配置my.cnf文件

如果服务器上之前有配置过mysql,一般会有一个my.cnf文件在etc文件夹下,但是这次为了新装一个mysql,并且让普通账户完全拥有其权限,所以在mysql文件夹下单独新建一个my.cnf文件。

cd mysql
vim my.cnf

之后在文件中添加以下内容,我这里因为服务器上已经有一个mysql了,所以为了避免端口冲突选择的是3307,一般是3306,也可以根据自己需求来,不冲突就好。其中的/home/user/mysql需改成自己的路径(后面的这个路径都要改成自己的)!

[client]   
port=3307  
socket=/home/user/mysql/mysql.sock  
[mysqld]
port=3307
basedir=/home/user/mysql
datadir=/home/user/mysql/data
pid-file=/home/user/mysql/mysql.pid
socket=/home/user/mysql/mysql.sock
log_error=/home/user/mysql/error.log
server-id=100

4.进入mysql目录,开始安装mysql

bin/mysqld --defaults-file=/home/user/mysql/my.cnf --initialize --user=user --basedir=/home/user/mysql --datadir=/home/user/mysql/data
#--defaults-file 指定配置文件
#--initialize 自动生成带随机密码的root用户

5.启动停止 MySQL

bin/mysqld_safe --defaults-file=/home/user/mysql/my.cnf --user=user &
bin/mysqladmin shutdown -u root -p -S /home/user/mysql/mysql.sock

./mysqld_safe启动mysql会默认寻找/etc/my.cnf配置文件。普通用户没有权限,因此要通过–defaults-file指定我们自定义的配置文件。这里的–user=user就是当前普通用户的用户名,需改成你自己的用户名。

6.在 error.log 文件中获取 root 用户密码。

cat error.log | grep root@localhost

7.安装完成,使用 root 用户登陆 MySQL。

bin/mysql -u root -p -S /home/user/mysql/mysql.sock

出现Enter password后复制前文获取的root用户密码回车就好。

8.修改root密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.02 sec)

9.修改权限使远程客户端可以连接。

先查看一下当前用户。

mysql> select host,user from user
    -> ;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

之后新创建用户。

mysql> create user 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.02 sec)

再赋予权限。

grant all privileges on *.* to 'root'@'%' with grant option;

然后刷新。

flush privileges;

最后再看一下。

mysql> select host,user from user
    -> ;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

要注意mysql8.0以后的版本创建用户和赋予权限的语句分开了,现在网上查到的很多是针对5.7版本的语句,所以在8.0版本中会报错,要注意一下。

10.用工具连接数据库

如果没什么问题就可以正常远程连接了。

总结

以上是本次完整的linux服务器部署mysql8.0.36的过程,亲测有效,希望为你能提供帮助!
本文参考:
https://blog.csdn.net/Session_lzh/article/details/103671299
https://blog.csdn.net/weixin_44455388/article/details/119681517

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值