CentOS7 RPM安装Mysql :
查看linux操作系统及内核版本
[root@itdev9901 ~]# cat /etc/redhat-release # 查看操作系统版本
CentOS Linux release 7.9.2009 (Core)
[root@itdev9901 ~]# uname -r # 查看系统内核版本
3.10.0-1160.31.1.el7.x86_64
[root@itdev9901 ~]#
下载安装包
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
选择 RPM Bundle,下载完记得解压 tar -xvf xxx.tar
# 创建目录并解压
mkdir -p /opt/mysql
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql
卸载旧版本的MySql (没有的话,则跳过此步骤)
查看旧版本MySql
rpm -qa | grep mysql
逐个删除掉旧的组件
使用命令rpm -e --nodeps {-file-name}进行移除操作,移除的时候可能会有依赖,要注意一定的顺序。
[root@iep-02 mysql]# rpm -qa|grep mariadb
[root@iep-02 mysql]# yum remove mariadb-libs
使用 rpm 命令安装MySql组件
使用命令rpm -ivh {-file-name}进行安装操作
按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
cd /opt/mysql
# 依次执行
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
部分机器出现错误
[root@iep-02 mysql]# rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
警告:mysql-community-libs-5.7.30-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
mysql-community-common(x86-64) >= 5.7.9 被 mysql-community-libs-5.7.30-1.el7.x86_64 需要
mariadb-libs 被 mysql-community-libs-5.7.30-1.el7.x86_64 取代
[root@iep-02 mysql]#
解决:清除yum里所有mysql依赖包
[root@iep-02 mysql]# rpm -qa|grep mysql
[root@iep-02 mysql]# yum remove mysql-libs
或者:
[root@iep-02 mysql]# rpm -qa|grep mariadb
[root@iep-02 mysql]# yum remove mariadb-libs
再次安装成功
[root@iep-02 mysql]# rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
警告:mysql-community-common-5.7.30-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-5.7.30-1.e################################# [100%]
[root@iep-02 mysql]# rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
警告:mysql-community-libs-5.7.30-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-5.7.30-1.el7################################# [100%]
[root@iep-02 mysql]#
[root@iep-02 mysql]# rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
警告:mysql-community-client-5.7.30-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-5.7.30-1.e################################# [100%]
[root@iep-02 mysql]#
注意细节:
1> 执行 yum remove mysql-libs 命令后,会自动删除掉 /etc/ 下的 my.cnf 文件
2> 对于安装mysql组件,只有安装了 mysql-community-server-5.7.22-1.el7.x86_64.rpm 组件,才会:
a). 在 /etc/下生成 my.cnf 文件 和 my.cnf.d 文件夹
b). 在/var/lib/下生产以下三个文件夹
c). 在/var/log/ 下生成 mysqld.log 文件
d). 在/var/run/ 下生成 mysqld 目录
查看安装路径
rpm -qal |grep mysql
[root@itdev9903 run]# rpm -qal |grep mysql
/usr/bin/mysql
/usr/bin/mysql_config_editor
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqlimport
/usr/bin/mysqlpump
/usr/bin/mysqlshow
/usr/bin/mysqlslap
/usr/share/doc/mysql-community-client-5.7.30
/usr/share/doc/mysql-community-client-5.7.30/LICENSE
/usr/share/doc/mysql-community-client-5.7.30/README
...
登录并创建MySql密码
1 启动MySql
安装完后,使用命令 service mysqld start 或 systemctl start mysqld.service 启动MySQL服务。(如果mysql服务无法启动,就重启一下系统)
systemctl start mysqld.service 启动mysql
systemctl status mysqld.service 查看mysql状态
systemctl stop mysqld.service 关闭mysql
查看mysql进程 ps -ef|grep mysql
查看3306端口 netstat -anop|grep 3306
查看状态
[root@iep-02 mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
[root@iep-02 mysql]#
启动再查看状态
[root@iep-02 mysql]# systemctl start mysqld.service
[root@iep-02 mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-07-08 15:57:16 CST; 4s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 4785 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 4723 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 4789 (mysqld)
CGroup: /system.slice/mysqld.service
└─4789 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
7月 08 15:57:12 iep-02 systemd[1]: Starting MySQL Server...
7月 08 15:57:16 iep-02 systemd[1]: Started MySQL Server.
[root@iep-02 mysql]#
查看是否安装成功
[root@iep-02 mysql]# ps -ef|grep mysql
mysql 4789 1 0 15:57 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 4852 2069 0 15:57 pts/2 00:00:00 grep --color=auto mysql
[root@iep-02 mysql]# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chronyd 656 chrony 5u IPv4 15657 0t0 UDP localhost:323
chronyd 656 chrony 6u IPv6 15658 0t0 UDP localhost:323
sshd 915 root 3u IPv4 16174 0t0 TCP *:ssh (LISTEN)
sshd 915 root 4u IPv6 16176 0t0 TCP *:ssh (LISTEN)
sshd 1550 root 3u IPv4 24430 0t0 TCP iep-02:ssh->172.18.5.116:49304 (ESTABLISHED)
sshd 1993 root 3u IPv4 51377 0t0 TCP iep-02:ssh->172.18.5.116:62915 (ESTABLISHED)
sshd 2062 root 3u IPv4 51494 0t0 TCP iep-02:ssh->172.18.5.116:51224 (ESTABLISHED)
mysqld 4789 mysql 21u IPv6 55133 0t0 TCP *:mysql (LISTEN)
[root@iep-02 mysql]# netstat -anop|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 4789/mysqld off (0.00/0/0)
[root@iep-02 mysql]#
因为服务已经启动了,因此能够用root和这个密码登录了:
mysql -u root -p
password 输入本身得到的密码
提示需要
[root@iep-02 mysql]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@iep-02 mysql]#
登陆mysql修改root密码
由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个临时密码。
怎么找到这个临时密码呢?
使用:
grep 'temporary password' /var/log/mysqld.log
即可查询到类似于如下的一条日志记录:
[root@iep-02 mysql]# grep 'temporary password' /var/log/mysqld.log
2021-07-08T07:57:14.452490Z 1 [Note] A temporary password is generated for root@localhost: -6Pxiaa>:W_L
[root@iep-02 mysql]#
-6Pxiaa>:W_L 即为登录密码。使用这个随机密码登录进去,然后修改密码,使用命令:
mysql -uroot -p
root@iep-02 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.30
Copyright (c) 2000, 2020, 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>
操作提示需要修改密码
mysql> status
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql>
简单密码不会通过
alter user root@localhost identified by '123456';
mysql> alter user root@localhost identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>
或者:
mysql> set password for root@localhost = password('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>
生成随机密码
cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 10 |head -10
cat /dev/urandom | LC_ALL=C tr -dc "[:graph:]" | fold -w 10 |head -10
更改密码
alter user root@localhost identified by 'password';
mysql> alter user root@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@iep-02 mysql]#
再次登录输入新密码
mysql -uroot -p
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
此时只能本机访问
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> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
31 rows in set (0.00 sec)
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql>
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
设置外部远程访问
权限:
#授予root用户远程访问权限:
mysql> grant all privileges on *.* to root@'%' identified by 'password' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
# 刷新权限,使设置生效, OK。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
#再次查看权限:
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
开启3306端口 远程访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#刷新防火墙
firewall-cmd --reload
在远程机器上测试远程连接: mysql -h 172.18.5.209 -uroot -p
创建用户并授权
一. 创建用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username:你将创建的用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
# 例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
二. 授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
# 例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
细分授权
mysql中可以给一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@'%'
二.设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用:
SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
三. 撤销用户权限
命令:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明:
privilege, databasename, tablename:同授权部分
例子:
REVOKE SELECT ON *.* FROM 'pig'@'%';
注意:
假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%',则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看。
四.删除用户
命令:DROP USER 'username'@'host';
mysql命令导入导出sql文件
window下
1.导出整个数据库,首先打开要导出的目录
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u dbuser -p dbname > dbname.sql 下一行需要输入密码
mysqldump -uroot -ppasswd [dbname]> english.sql 在本行直接输入密码
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3.导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
linux下
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
\#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
\#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
权限列表:
- ALTER: 修改表和索引。
- CREATE: 创建数据库和表。
- DELETE: 删除表中已有的记录。
- DROP: 抛弃(删除)数据库和表。
- INDEX: 创建或抛弃索引。
- INSERT: 向表中插入新行。
- REFERENCE: 未用。
- SELECT: 检索表中的记录。
- UPDATE: 修改现存表记录。
- FILE: 读或写服务器上的文件。
- PROCESS: 查看服务器中执行的线程信息或杀死线程。
- RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
- SHUTDOWN: 关闭服务器。
- ALL: 所有权限,ALL PRIVILEGES同义词。
- USAGE: 特殊的 "无权限" 权限。
mysql命令行清屏
有4种方法:
system clear
sytem reset
! clear
commond+l
备份
# 建备份账号
grant select,lock tables on *.* to 'barkup'@'192.168.100.%' identified by 'pwd@123';
# 不带库
mysqldump -u dbuser -p'passwd' --single-transaction --default-character-set=utf8 dbname > dbname_$(date '+%Y%m%d_%H%M%S').sql
# 带库
mysqldump -u dbuser -p'passwd' --single-transaction --default-character-set=utf8 -B dbname > dbname_$(date '+%Y%m%d_%H%M%S').sql
# 导入
mysql -uroot -p'password' db_dbtest < db_20210804_152823.sql
# mysqldump工具备份
# 备份整个数据库
mysqldump -u root -h host -p dbname > backdb.sql
#备份数据库中的某个表
mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql
# 备份多个数据库
mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql
#备份系统中所有数据库
mysqldump -u root -h host -p --all-databases > backdb.sql
# 样例
mysqldump -uroot -p'password' --single-transaction --default-character-set=utf8 --all-databases > dbackdb_$(date '+%Y%m%d_%H%M%S').sql
-
shell备份
#!/bin/bash <!--定义数据库连接、目标信息库等信息:--> user="repl" <!--授权的账户--> pass="passwd" <!--授权账户的密码--> host="172.18.5.209" <!--目标服务器IP地址--> conn="-u $user -p$pass -h $host" data1="db1" <!--备份的数据库名字--> data2="db2" <!--备份的数据库名字--> bak="/opt/backup" <!--指定备份目录--> cmd="/usr/bin/mysqldump" <!--指定命令工具--> time=`date +%Y-%m-%d-%H-%M` <!--定义时间变量--> name_1="$data1-$time" <!--定义备份后的名字--> name_2="$data2-$time" <!--定义备份后的名字--> cd $bak <!--切换至备份目录下--> $cmd $conn --databases $data1 > $name_1.sql <!--备份为.sql文件--> $cmd $conn --databases $data2 > $name_2.sql <!--备份为.sql文件--> /bin/tar zcf $name_1.tar.gz $name_1.sql --remove > /dev/null <!--打包后删除源文件--> /bin/tar zcf $name_2.tar.gz $name_2.sql --remove > /dev/null <!--打包后删除源文件-->
-
安全备份
# 随机密码
cat /dev/urandom | LC_ALL=C tr -dc "[:graph:]" | fold -w 10 |head -10
# 建备份账号
grant select,reload,REPLICATION CLIENT, REPLICATION SLAVE,lock tables on *.* to 'barkup'@'10.%.%.%' identified by 'p0B4`^1ukW';
grant all privileges on *.* to 'barkup'@'localhost' identified by 'p0B4`^1ukW';
# 刷新权限
FLUSH PRIVILEGES;
# 安全登录解决的方法。
# mysql_config_editor的--login-path可以完成该工作。
# mysql_config_editor命令使用:
mysql_config_editor set --login-path=mydbbarkup --host=localhost --port=3306 --user=barkup --password
# 完成配置后,生成一个mydb的登录点(login-path),密钥保存在$HOME/.mylogin.cnf。以后访问数据库只要指定login-path的名称即可
mysql --login-path=mydbbarkup
# 全量备份
# --single-transaction: 基于此选项能实现热备InnoDB表;因此,不需要同时使用--lock-all-tables;
# --master-data=2 记录备份那一时刻的二进制日志的位置,并且注释掉,1是不注释的
# --databases hellodb 指定备份的数据库
backup_dir="/data/backup/mysql"
database="test"
filename="${backup_dir}/${database}_`date +%Y-%m-%d-%H%M`.sql"
mysqldump --login-path=mydbbarkup --single-transaction --master-data=2 --default-character-set=utf8 --set-gtid-purged=OFF --triggers --routines --events --dump-date --databases $database > $filename
#!/bin/bash
# 全库备份
# sh all_barkup.sh db_name
# 默认为sywn
# 第一个参数:db_name
# 登录密钥
login_path="mydbbarkup"
# 备份路径
# 提前准备目录
backup_dir="/data/backup/mysql"
backup_dir="/root/test"
# 备份命
cmd="/usr/bin/mysqldump"
# 当前时间
time=`date +%Y-%m-%d-%H-%M`
bark_all()
{
# 需备份库名
db_name=$1
database=${db_name:-'sywn'}
# 保存文件名
filename="${backup_dir}/${database}_$time.sql"
# 执行备份
$cmd --login-path=${login_path} \
--single-transaction \
--master-data=2 \
--default-character-set=utf8 \
--set-gtid-purged=OFF \
--triggers --routines --events \
--dump-date \
--databases $database > $filename
}
# 执行
CALL_DO() {
while [ $# -ne 0 ]
do
# 打印特殊变量$1的值,及特殊变量$#的值
echo "Current Parameter: $1, Remaining $#."
bark_all $1
# 将位置参数左移一位
shift
done
}
# 执行
CALL_DO $*
-
清屏
system clear
-
查看权限
# 权限列表 SHOW PRIVILEGES; # 单用户权限 show grants for dbdev@'%';
-
日志
# general_log会记录所有的SQL操作,一般不建议开启。 show global variables like '%general%'; tail -f /var/lib/mysql/itdev9903.log | grep "Connect" # 开启general_log set global general_log=on;
-
授权
grant all privileges on *.* to root@'172.18.5.127' identified by 'password' WITH GRANT OPTION;
-
回收权限
# 回收所有 revoke all privileges,grant option from 'xxx'@'%'; # 回收 REVOKE SELECT ON *.* FROM 'xxx'@'%';
-
常用操作
create database if not exists db default charset utf8 collate utf8_general_ci; CREATE USER 'dbdev'@'%' IDENTIFIED BY 'NGRDNag(f8E'; grant insert,delete,update,select,create,drop,alter,index,lock tables on db.* to 'dbdev'@'%' ; FLUSH PRIVILEGES; DROP USER 'dbdev'@'%';
-
查看用户权限
show grants for root@'%';
-
删除用户
Delete FROM user Where User='root' and Host='172.18.5.127';
-
刷新
flush privileges;
网友评论