mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=OFF db1 t --where="a>900" --result-file=/client_tmp/t.sql
–skip-extended-insert
。mysql -h127.0.0.1 -P13000 -uroot db2 -e "source /client_tmp/t.sql"
select * from db1.t where a>900 into outfile '/server_tmp/t.csv';
load data infile '/server_tmp/t.csv' into table db2.t;
db2
.t
。/tmp/SQL_LOAD_MB-1-0
的内容,加载到目标表 db2.t 中”。三种将一个表的数据导入到另外一个表中的方法。对比一下这三种方法的优缺点:
grant all privileges on *.* to 'ua'@'%' with grant option;
。grant 命令做了两个动作:
一般在生产环境上要合理控制用户权限的范围。如果一个用户有所有权限,一般就不应该设置为所有 IP 地址都可以访问。
revoke all privileges on *.* from 'ua'@'%';
。 revoke 命令的用法与 grant 类似,做了修改两个动作。grant all privileges on db1.* to 'ua'@'%' with grant option;
。基于库的权限记录保存在 mysql.db 表中,在内存里则保存在数组 acl_dbs 中。这条 grant 命令做了如下两个动作:
mysql.tables_priv
中,列权限定义存放在表 mysql.columns_priv
中。这两类权限,组合起来存放在内存的 hash 结构 column_priv_hash
中。create table db1.t1(id int, a int); grant all privileges on db1.t1 to 'ua'@'%' with grant option; GRANT SELECT(id), INSERT (id,a) ON mydb.mytbl TO 'ua'@'%' with grant option;
grant之后要跟着flush privileges吗?
你知道的越多,你不知道的越多。