环境
-
oracle linux7.3
-
数据库:MySQL-5.7.20
mysql的安装
- 先安装依赖的插件
yum install libaio
- 去官网下载mysql-5.7.20的tar.gz包;
https://dev.mysql.com/downloads/mysql/
# 将下载包解压到/usr/local/目录下
tar mysql-advanced-5.7.20-linux-glibc2.12-x86_64 -C /usr/local
# 创建一个mysql的用户组
groupadd mysql
# 为用户组添加用户
useradd -r -g mysql mysql
cd /usr/local
# 为解压文件创建一个简单的软链接
ln -s mysql-advanced-5.7.20-linux-glibc2.12-x86_64 mysql
cd mysql
# 创建一个用户数据的文件
mkdir mysql-files
# 将该文件夹交给mysql组下的mysql用户
chown mysql:mysql mysql-files
# 授权
chmod 750 mysql-files
# 执行初始化脚本
cd bin
./mysqld --initialize --user=mysql # ./mysql_intsall_db脚本初始化方式已经被弃用
# 添加加密
./mysql_ssl_rsa_setup
# 安全启动mysql
./mysqld_safe --user=mysql&
注意:
- 执行初始化后会出现如下,提示默认密码,记住这个密码
A temporary password is generated for root@localhost: XXXXXXX, XXXXXXX
- 登录mysql修改初始密码
mysql -u root -p
set password=password('new_password')
- 如果是系统自带的mysql版本,第一次登陆的时候也需要修改初始密码;
# 去日志找到初始随机密码
cd /var/log
cat mysqld.log | grep password
-
出现‘A temporary password is generated for root@localhost: xxxxxxx’就是root用户的初始随机密码
-
更多详细内容参见mysql 5.7以上修改初始密码
-
将mysqld添加到系统环境变量
vi /etc/profile
# 在末尾添加
export MYSQL_HOME="/usr/local/mysql/"
export PATH="$PATH:$MYSQL_HOME/bin"
# 应用配置
source /etc/profile
- 设置开机自启动
# 编辑启动脚本
vi smysql
#!/bin/sh
#chkconfig: 2345 30 70
/usr/local/mysql/support-files/mysql.server start
# 注册到自启动服务
chkconfig --add smysql
chkconfig smysql on
用户相关
- 查看当前MySQL的所有的用户
use mysql;
select host,user from mysql.user;
- 查看mysql用户的权限
show grants for root@'localhost';
- MySQL创建一个用户
# create user "用户的名称"@"主机的IP,如果任意使用%代替" identified by "登陆的密码,为空则没有密码";
create user 'usrabc'@'%' identified by 'usrabc';
- 用户授权
授权格式:grant 权限 on 数据库 to 用户名@登录主机;
说明:
- 权限:指的是privileges,可以使select,insert等,所有的权限使用all;
- 数据库:写数据库名,表名,所有数据库用.;
- 用户名@登录主机:给授权的用户和指定的主机,所有主机使用'%';
- 注意:
授权的用户不能对其他用户进行授权,如果想让该用户可以授权,用以下命令:
grant 权限 on 数据库 to 用户名@登录主机 with grant option;
grant all privileges on *.* to 'username'@'%' with grant option;
# 刷新权限表
flush privileges;
# 退出MySQL重启
service mysql restart
- 设置更改用户的密码
# root管理员更改其他的用户的密码
set password for 'username'@'%' = password('123456');
# 如果是用户修改密码
set password = password('123456');
- 撤销用户权限
# 其相关的参数同用户的授权的一样
revore privileges on 数据库 from 'username'@'host';
- 删除用户
# 使用root操作
drop user 'username'@'host';
卸载并彻底删除
- 目前我的系统的使用yum安装的,因此使用yum卸载,
$ yum remove mysql
- 还有许多的残留文件需要删除
# 全局查找mysql文件
find / -name mysql
# 将查找到的每个目录删除
rm -rf xxx -rf xxx ...
- 重启后可以安装新的mysql了