一、创建用户
#创建用户组
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,连接成功。