1、创建用户:
create user 'username'@'host' identified by 'password';
username : 将要创建的用户名
host : 指定该用户在哪个主机上可以登入,如果是本地用户,可以
用localhost,如果想让该用户可以从任意主机登入,可
以使用通配符%
password : 该用户的登入密码,密码可以为空,如果为空则该用户可以
不需要密码登入服务器。
例如:
create user 'pig'@'localhost' identified by '123456';
2、如何授权:
grant privileges on databasename.tablename to 'username'@'host'
说明:
privileges : 用户的操作权限,如insert、select、update等,如果要授予所有权限则使用all,如果要授予该用户对所有数据库和表的相应权限的对应操作权限则可用*表示,如:*.*
例:
grant all on *.* to 'pig'@'%';
//用这个命令授权的用户不能向其其他用户授权,如果想让该用户可以授权用下面的命令
grant privileges on databasename.tablename to 'username'@'host' with grant option;//可以向其他人授权
刷新系统权限表:
flush privileges;
3、设置与更改用户密码
set password for 'username'@'host'=password('newpassword');
set pasword for 'pig'@'%'=password('123456');
set password=password(new password ); //用户如果是当前用户可以用此命令
4、撤销用户授权:
remove privilege on databasename.tablename from 'username'@'host';
show grants for 'pig'@'%';//查看权限
5、删除用户
drop user 'username'@'host';
6、具体例子:
1)、创建用户:test 密码是:1234
mysql -uroot -p
create user 'test'@'localhost' identified by '1234'; //本地登入
create user 'test'@'%' identified by '1234'; //远程登入
quit
mysql -utest -p //测试是否创建成功
2)、为用户授权
a)授权格式:
grant privileges on databaseneme.tablename to 'username'@'host' identified by 'password';
b)登入数据库,这里以root身份登入
mysql -uroot -p
c)为用户创建一个数据库:testDB
create database testDB;
create database testDB default charset utf8 collate utf8_general_ci; //指定编码格式
d)授权test用户拥有数据库testDB的所有权限
grant all on testDB.* to 'test'@'localhost' identified by '1234';
flush privileges;
e)授权部分权限给指定用户:
grant select,update on testDB.* to 'test'@'localhost' identified by '1234';
flush privileges;
f)授权test用户拥有所有数据库的某些权限
grant select,insert,update on *.* to 'test'@'%' identified by '1234';
3)删除用户
mysql -uroot -p
delete from mysql.user where user='test' and host='localhost';
flush privileges;
drop database testDB;
删除账户及权限:
drop user 用户名@'%'
drop user 用户名@'localhist'
数据库备份
1)、单库备份
mysqldump -uroot -p111111 --default-character-set=gbk --force testDB > ./testDB_bak.sql
2)、多库备份
mysqldump -uroot -p111111 --default-character-set=gbk --force --databases testDB mysql > testDB_mysql.sql
3)、备份所有库
mysqldump -uroot -p111111 --all-databases > all.sql //全库备份
mysqldump -uroot -p111111 -A > all.sql
数据库恢复
方法1:
mysqldump -uroot -p111111 testDB < /root/testDB_bak.sql
方法2:
1)先登入mysql数据库,输入命令:mysql -uroot -p 输入密码即可
2)再使用数据库testDB:use testDB
3)导入备份文件:source /root/testDB_bak.sql
将数据库导入mysql
mysql -uroot -p111111 < /tmp/openfire.sql
mysql -uroot -p111111
==>show databases;
备份数据库脚本:
#!/bin/bash
#Auth="wuxuewen"
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
TARGET_DIR="/data/mysql-backup/"
if [ -z $TARGET_DIR ];then
echo "相关变量没有设置!"
exit 100;
fi
MYSQL_HOST="10.8.208.35"
MYSQL_USER="root"
MYSQL_PASSWORD="111111"
MYSQL_CHARACTER="gbk"
DB=$(mysql -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -e "show databases;" 2> /dev/null |egrep -v "Database|information_schema|mysql|performance_schema")
echo $DB
if [ ! -d ${TARGET_DIR}/`date +%F` ];then
mkdir -p ${TARGET_DIR}/`date +%F`
fi
for db in $DB
do
mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD --default-character-set=$MYSQL_CHARACTER -x -B $db > ${TARGET_DIR}/`date +%F`/$db-`date +%F`.sql
done
if [ $? -eq 0 ];then
tar zcf ${TARGET_DIR}/`date +%F`.tar.gz ${TARGET_DIR}/`date +%F` && rm -rf ${TARGET_DIR}/`date +%F`
find ${TARGET_DIR}/* -name "*.tar.gz" -a -mtime +30 -exec rm -f {} \;
fi
7、修改密码:
(1)修改mysql密码(第一种)
第一步:用root用户登入,输入:mysql -uroot -p 回车
第二步:MariaDB [(none)]> use mysql;
第三步:
MariaDB [mysql]> update user set password=password('111111') where user='root' and host='127.0.0.1';
第四步:MariaDB [mysql]>update user set password=password('111111') where user='root' and host='localhost';
第五步:MariaDB [mysql]> flush privileges;
修改127.0.0.1和localhost的密码(第二种)
MariaDB [(none)]> set password for 'root'@'127.0.0.1'=password('111111');
MariaDB [(none)]> set password for 'root'@'localhost'=password('111111');
MariaDB [(none)]> flush privileges;
(2)创建用户并设置用户密码和权限
MariaDB [(none)]> grant all on *.* to 'bak'@'124.204.35.228' identified by '222222'; //用于数据库备份
MariaDB [(none)]> grant all on *.* to 'root'@'124.204.35.228' identified by '333333'; //用于开发人员调试数据库使用
(3)删除用户
MariaDB [(none)]> use mysql;
MariaDB [mysql]> delete from user where user='bak' and host='124.204.35.228';