centos 安装 mysql

一、创建用户

#创建用户组
groupadd [usergroup]

#创建用户test 到usergroup用户组 设置密码为111111
useradd [test] -g usergroup -p [111111]

# 更改 /opt 文件夹及内部文件的所属用户及组为test:usergroup
chown -R test:usergroup /opt 

# 切换到非root用户test下来
su test

passwd phpq                          //给phpq用户设置密码

临时关闭
在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。
或者使用如下命令关闭用户账号:
passwd peter –l
重新释放:
passwd peter –u

永久性删除用户账号

userdel peter

groupdel peter

usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)

从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A 或者用命令 
gpasswd -d A GROUP

显示用户信息
id user
cat /etc/passwd
补充:查看用户和用户组的方法

用户列表文件:/etc/passwd
用户组列表文件:/etc/group

查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
查看某一用户:w 用户名
查看登录用户:who
查看用户登录历史记录:last

二、centos普通用户设置sudo权限

一直使用root用户是危险的,最好在普通用户下进行工作。但有些操作必须要root权限才可以执行,如何让普通用户拥有root权限。

工具/原料
centos

方法/步骤

1 敲入命令:

sudo mv mysql /xxx/xxx

希望在普通用户下,通过sudo命令,让用户暂时拥有root权限,移动文件到/usr/local。
在这里插入图片描述
很明显,失败了,错误原因是:该用户暂没有root权限
centos普通用户设置sudo权限

2 敲入命令:

su

该命令可以让我们切换到root用户
centos普通用户设置sudo权限

3 敲入命令:

visudo

visudo命令是用来编辑修改/etc/sudoers配置文件
在这里插入图片描述
4 centos普通用户设置sudo权限
入下图所示,打开sudoers文件
在这里插入图片描述

5 centos普通用户设置sudo权限

找到如下图所示,标出红线的一行
root ALL=(ALL) ALL
centos普通用户设置sudo权限
在“root ALL=(ALL) ALL”这一行下面,再加入一行:

shell  ALL=(ALL)     ALL

在这里插入图片描述

其中,shell为你当前使用的用户名,也就是普通用户的用户名
centos普通用户设置sudo权限
保存之后,输入exit,退出root用户

centos普通用户设置sudo权限

此时,再次输入命令:sudo mv xxx /xxx/xxx之后,可以发现,xxx文件夹移动成功,该文件夹是以root权限移动的
在这里插入图片描述

centos普通用户设置sudo权限

三、 安装mysql

1 下载

下载地址 https://downloads.mysql.com/archives/community/
在这里插入图片描述

2 环境检查

检测系统是否自带Mysql

rmp -qa|grep mysql

在这里插入图片描述
如果有进行强行卸载

rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64

检测系统是否自带mariadb

rpm -qa|grep mariadb

在这里插入图片描述

 rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

在这里插入图片描述

rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64

在这里插入图片描述

rpm -e --nodeps mariadb-server-5.5.64-1.el7.x86_64

在这里插入图片描述

用连接工具将下载的mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上传到linux服务器/otp/的目录下面

3 安装

进入opt/解压

tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

在这里插入图片描述
解压完重命名

mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7.30
mv mysql-5.7.30 /usr/local

在这里插入图片描述
因为我用的shell用户登录的接下来这一步我并没有操作,但是也没问题.如果不可以 请自行替换用户组和用户操作

检查mysql组和用户是否存在,如果没有则创建
cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql  
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

安装数据库 创建data目录

cd /usr/local/mysql-5.7.28
mkdir data

在这里插入图片描述
将/usr/local/mysql-5.7.30的所有者及所属组改为 mysql (我这里用的其它用户shell)

chown -R mysql.mysql /usr/local/mysql-5.7.30

在这里插入图片描述
在/usr/local/mysql-5.7.28/support-files目录下创建my_default.cnf

vi my_default.cnf

在这里插入图片描述
这个mysqld也要在哦

[mysqld]
#设置mysql的安装目录
basedir=/usr/local/mysql-5.7.30
#设置mysql数据库的数据存放目录
datadir=/usr/local/mysql-5.7.30/data
#设置端口
port=3306

socket=/tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error=/usr/local/mysql-5.7.30/data/mysqld.log
pid-file=/usr/local/mysql-5.7.30/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

拷贝,是否覆盖,是

cp my_default.cnf /etc/my.cnf

初始化Mysql
老样子注意命令–user=我的是shell 你注意自己的用户

 ./bin/mysqld --initialize --user=mysql--basedir=/usr/local/mysql-5.7.30/ --datadir=/usr/local/mysql-5.7.30/data/

在这里插入图片描述
如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过

yum install libaio

初始化完成之后查看日志

cat /usr/local/mysql-5.7.30/data/mysqld.log,蓝框里的是临时密码
在这里插入图片描述
把启动脚本放到开机初始化目录

cp support-files/mysql.server /etc/init.d/mysql

在这里插入图片描述
启动mysql

service mysql start

在这里插入图片描述
进入mysql并更改密码

cd /usr/local/mysql-5.7.30
./bin/mysql -u root -p
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
#如果更改时报错:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',就先查询一下是否已更改,最后执行刷新。
mysql> flush privileges;

重启mysql生效

service mysql restart

注:如果报以下错误
在这里插入图片描述

解决方法:修改MySQL的配置文件,

1、windows下找到MySQL的安装目录的my.ini文件,修改其中的配置为不启动ONLY_FULL_GROUP_BY模式
删掉带有ONLY_FULL_GROUP_BY的模式就ok了,如果没有找到my.ini文件。
去系统的隐藏文件夹查看,在某个盘下输入%ProgramData%然后搜索MySQL的my.ini文件
2、linux下找到my.cnf文件,这个是配置MySQL的文件。一般这个文件是在etc文件夹下。
vi my.cnf 编辑这个文件,然后在图示的位置上加入sql_mode=“STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER”
然后重启MySQL服务:service mysql restart

注意:

如果创建mysql的数据库连接报如下错误:2059 - Authentication plugin
‘caching_sha2_password’ cannot be loaded:

从错误信息可知caching_sha2_password不能加载。

以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

大安装Mysql数据库的主机上登录Mysql对应的用户,上面连接时用的用户为root,所以我们登录root用户。

执行命令

use mysql;

select user,plugin from user where user=‘root’;

可以看到当前用户的加密方式为caching_sha2_password

执行命令

alter user ‘root’@‘%’ identified with mysql_native_password by ‘123456’;

或者

alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;

将用户的加密方式改为mysql_native_password。

执行命令flush privileges使权限配置项立即生效。

再次尝试连接Mysql,连接成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值