Linux普通用户安装单机mysql5.7

前言

通常很多网上的安装mysql的教程都是以root用户来安装的,但是我们知道root用户的权限非常之高,在真实的项目环境中,往往要求不能使用root用户来安装和运行软件,防止因为漏洞导致系统被攻击,所以一般会使用有限权限的普通用户来安装软件。我们今天就是要用普通用户来安装一次mysql,下次讲如何部署mysql主从/主主模式

一、准备东西

  • mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz:下载链接
  • centos7

二、安装过程

2.1 卸载原带mysql(MariaDB)
# 查找mariadb相关的软件包
[root@localhost /]# rpm -qa |grep maria
# 根据展示出来的包名使用以下命令卸载,如
[root@localhost /]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
# 结果有几个就删除几个,以上只是其中一个
# --nodeps参数一定要带上,否则可能会因为依赖关系,而无法卸载,加上该参数就不会检查依赖,而直接卸载
2.2 创建并切换普通用户
# 创建用户
[root@localhost /]# useradd mysql
# 为mysql用户设置密码
[root@localhost /]# passwd mysql 
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# 根据提示输入两次密码即完成用户创建

# 为mysql用户创建有权限的目录,如data
[root@localhost /]# mkdir data
# 此时data目录的权限还是root用户
[root@localhost /]# ll
总用量 20
lrwxrwxrwx.   1 root root    7 3月  27 04:42 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 3月  27 04:53 boot
drwxr-xr-x.   2 root root    6 7月  16 23:20 data
drwxr-xr-x.  20 root root 3240 7月  16 22:53 dev
drwxr-xr-x. 104 root root 8192 7月  16 23:18 etc

# 我们需要将权限授予mysql用户
[root@localhost /]# chown -R mysql:mysql /data
[root@localhost /]# ll
总用量 20
lrwxrwxrwx.   1 root  root     7 3月  27 04:42 bin -> usr/bin
dr-xr-xr-x.   5 root  root  4096 3月  27 04:53 boot
drwxr-xr-x.   2 mysql mysql    6 7月  16 23:20 data
drwxr-xr-x.  20 root  root  3240 7月  16 22:53 dev
drwxr-xr-x. 104 root  root  8192 7月  16 23:18 etc

# 切换至mysql用户
[root@localhost /]# su - mysql
[mysql@localhost /]$ cd /data

如果对上述权限操作不清楚的,可以先回顾一下原来的博客《Linux学习之文件权限》

2.3 解压并安装
# 注意上传文件的时候以mysql用户的身份上传文件(以mysql用户连xshell或xftp)
# 否则上传上来的文件权限可能还是root的
# 解压文件
[mysql@localhost data]$ tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 
# 重命名文件夹,便于后面配置一些参数路径
[mysql@localhost data]$ mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
[mysql@localhost data]$ ll
总用量 0
drwxr-xr-x. 9 mysql mysql 129 7月  16 23:33 mysql
# 切换至mysql目录
[mysql@localhost data]$ cd mysql
# 安装mysql
[mysql@localhost mysql]$ bin/mysql_install_db --user=mysql --basedir=/data/mysql/ --datadir=/data/mysql/data/

2020-07-16 23:42:02 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2020-07-16 23:42:08 [WARNING] The bootstrap log isn't empty:
2020-07-16 23:42:08 [WARNING] 2020-07-16T15:42:02.889711Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2020-07-16T15:42:02.890977Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2020-07-16T15:42:02.890995Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

# 添加可执行命令
[mysql@localhost mysql]$ cp ./support-files/mysql.server /etc/init.d/mysqld
cp: 无法创建普通文件"/etc/init.d/mysqld": 权限不够
# 有的可能会出现上述的这个权限不足的问题,那么这个时候可能需要借助root用户来复制,并给予权限了
# 那么如果复制成功了,则以下操作可以忽略
[mysql@localhost mysql]$ su - root
[root@localhost ~]# cd /data/mysql
[root@localhost mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# cd /etc/init.d/
[root@localhost init.d]# ll
总用量 52
-rw-r--r--. 1 root root 17500 5月   3 2017 functions
-rwxr-xr-x. 1 root root 10576 7月  16 23:49 mysqld
-rwxr-xr-x. 1 root root  4334 5月   3 2017 netconsole
-rwxr-xr-x. 1 root root  7293 5月   3 2017 network
-rw-r--r--. 1 root root  1160 8月   5 2017 README
# 将权限给mysql用户
[root@localhost init.d]# chown -R mysql:mysql mysqld
[root@localhost init.d]# ll
总用量 52
-rw-r--r--. 1 root  root  17500 5月   3 2017 functions
-rwxr-xr-x. 1 mysql mysql 10576 7月  16 23:49 mysqld
-rwxr-xr-x. 1 root  root   4334 5月   3 2017 netconsole
-rwxr-xr-x. 1 root  root   7293 5月   3 2017 network
-rw-r--r--. 1 root  root   1160 8月   5 2017 README
# 退出root,继续使用mysql用户
[root@localhost init.d]# exit

# 将默认的配置文件复制到/etc下
[mysql@localhost mysql]$ cp ./support-files/my-default.cnf /etc/my.cnf
cp: 无法获取"./support-files/my-default.cnf" 的文件状态(stat): 没有那个文件或目录
# 我们的安装包中没有默认的配置文件,mysql官方从5.7.18开始不再提供该文件
# 我们可以直接使用mysql的默认配置,一般centos会自带有/etc/my.cnf,修改相应的路径即可
[mysql@localhost mysql]$ vim /etc/my.cnf
# 如果无法编辑保存,说明权限不够,默认的该文件的权限为root
# 按照之前交的办法使用root用户更改文件权限即可 
[mysql@localhost etc]$ su - root
[root@localhost ~]# chown -R mysql:mysql /etc/my.cnf
[root@localhost ~]# ll /etc/my.cnf
-rw-r--r--. 1 mysql mysql 570 6月   8 2017 /etc/my.cnf
[root@localhost ~]# exit
登出
# 清空原有配置
[mysql@localhost mysql]$ cat /dev/null > /etc/my.cnf
[mysql@localhost mysql]$ vim /etc/my.cnf
# 可按照以下内容修改
[mysqld]
basedir = /data/mysql
datadir = /data/mysql/data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

2.4 启动并修改mysql密码
# 安全模式启动mysql
[mysql@localhost mysql]$ bin/mysqld_safe --user=mysql &
[1] 2668
[mysql@localhost mysql]$ 2020-07-16T16:18:28.650950Z mysqld_safe Logging to '/data/mysql/data/localhost.localdomain.err'.
2020-07-16T16:18:28.917887Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/data

# 重启mysql
[mysql@localhost mysql]$ /etc/init.d/mysqld restart
Shutting down MySQL..2020-07-16T16:20:34.760914Z mysqld_safe mysqld from pid file /data/mysql/data/localhost.localdomain.pid ended
 SUCCESS! 
Starting MySQL. SUCCESS! 
[1]+  完成                  bin/mysqld_safe --user=mysql

# 修改mysql密码
# 查看初始密码,在用户的家目录下的.mysql_secret文件中
# root用户就在/root下,其他用户就在/home/用户名下
[mysql@localhost mysql]$ cat /home/mysql/.mysql_secret 
# Password set for user 'root@localhost' at 2020-07-16 23:42:02 
YYVJdz%m-E<P

# 以初始密码登录mysql
[mysql@localhost mysql]$ bin/mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.26

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 修改密码
mysql> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 开启远程访问权限
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

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

mysql> quit
Bye

# 重启mysql
[mysql@localhost mysql]$ /etc/init.d/mysqld restart 
Shutting down MySQL.. SUCCESS! 
Starting MySQL.. SUCCESS! 
[mysql@localhost mysql]$ ps -ef |grep mysql
2.5 配置环境变量(可选)

至上述步骤,mysql已经安装部署完毕,如果怕以后找不到安装路径,可配置环境变量,这样以后可以在任意目录使用mysql -uroot -p来进行登录了

# 将用户切回root,只有root用户有权限配置
[mysql@localhost mysql]$ su - root
[root@localhost ~]# vim /etc/profile
# 在其中加入mysql的bin目录路径
# export PATH=$PATH:/data/mysql/bin
# 使环境变量生效
[root@localhost ~]# source /etc/profile

这样就可以到处使用mysql命令了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值