mysql实用命令

修改用户的用户名:

update user set user='新的用户名' where user='原用户名';
select User.Host from user;				#可以查看当前数据库里有哪些用户,有哪些网段的权限
mysql> select User,Host from mysql.user;
+------------+----------------+
| User       | Host           |
+------------+----------------+
| repl_slave | %              |
| mastermha  | 10.0.%         |
| slaveall   | 10.0.%         |
| root       | 127.0.0.1      |
| root       | ::1            |
|            | host-10-0-32-6 |
| root       | host-10-0-32-6 |
|            | localhost      |
| root       | localhost      |
+------------+----------------+
9 rows in set (0.00 sec)

mysql> 

用户权限:

revoke PROCESS,SUPER,FILE ON *.* from '用户名'@'IP'			#去掉用户的权限
show grants for '用户名'@'IP'								#查看用户有哪些权限
grant FILE ON *.* to 'yanfa'@'%';						    #给用户授权
 DROP USER 'test1'@'localhost';                  			#删除用户

修改mysql密码

alter user 'root'@'localhost' identified by '123456';

修改参数值

合理配置"wait_timeout","interactive_timeout"的参数值
wait_timeout:
服务器关闭非交互连接之前等待活动的秒数。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
参数默认值:28800秒(8小时)
interactive_timeout:
服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
参数默认值:28800秒(8小时)
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到mysql处理完相应的操作后,应该断开连接并释放占用的内存。如果你的mysql有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到mysql的连接上限数,这会报’too many connections’的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。

修改配置文件: /etc/my.cnf
【mysqld】
Wait_timeout= 30
Interactive_timeout=31536000										#修改配置文件需要重启mysql才能生效
数据库sql语句修改
set global Interactive_timeout=设置值
set global Wait_timeout= 设置值										#一次性,重启失效,可用于动态修改
mysql> show variables like '%Wait_timeout%';						#查看参数值,也就是所谓的模糊查询
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28000    |
+--------------------------+----------+
show variables like '%char%';										#查看mysql的编码
show variables like 'max_binlog_cache_size';						#查看一下这个参数的大小


备份mysql

mysqldump -uroot -p123456789 --master-data=2 --single-transaction -A >/root/all.sql

导库

在数据库里面执行source   数据库文件.sql
在命令行执行
mysql -uroot -p123456789 </root/all.sql

查询某个库的大小

use information_schema;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='host_process'

或者,找到mysql的数据目录(ps  aux|grep  mysql),找到需要查询的目录(比如db1目录),然后du -sh db1把结果截图发给问的人就行
[root@host-10-0-32-6 ~]# ps aux|grep mysql
root      7706  0.0  0.0 113424  1584 ?        S    Apr24   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/3406/data --pid-file=/data/mysql/3406/mysql3406.pid
mysql     8089  0.2  3.2 2444588 264072 ?      Sl   Apr24   9:49 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/3406/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/3406/log/error.log --pid-file=/data/mysql/3406/mysql3406.pid --socket=/data/mysql/3406/mysql.sock --port=3406
--datadir=/data/mysql/3406/data									#这个就是数据目录
[root@host-10-0-32-6 ~]# cd /data/mysql/3406/data
[root@host-10-0-32-6 data]# ls
auto.cnf         host-10-0-32-6-relay-bin-group_replication_applier.000006   ibtmp1
binlog.000001    host-10-0-32-6-relay-bin-group_replication_applier.000007   mysql
binlog.000002    host-10-0-32-6-relay-bin-group_replication_applier.index    performance_schema
binlog.000003    host-10-0-32-6-relay-bin-group_replication_recovery.000001  private_key.pem
binlog.index     host-10-0-32-6-relay-bin-group_replication_recovery.000002  public_key.pem
ca-key.pem       host-10-0-32-6-relay-bin-group_replication_recovery.index   server-cert.pem
ca.pem           ib_buffer_pool                                              server-key.pem
client-cert.pem  ibdata1                                                     sys
client-key.pem   ib_logfile0
db1              ib_logfile1
[root@host-10-0-32-6 data]# du -sh db1
112K	db1

查看表如何创建

mysql> use db2;
mysql> show tables;
+---------------+
| Tables_in_db2 |
+---------------+
| t1            |
+---------------+
1 row in set (0.00 sec)

mysql> show create table t1;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                   |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `v1` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
这个就是当初创建这个库的语句,可以粘贴下来去别的数据库上创建
 CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `v1` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
1 row in set (0.05 sec)
但是创建好以后表里没数据,需要我们手动添加数据
insert  into  表名  (字段1,字段2)  values  (值1,值2);				用这个可以给表里添加数据

指定权限授权

GRANT SElECT ON xueya.* TO 'xytest'@'%' IDENTIFIED BY "6TfBAHypbGL@hRUS";								#只读权限

GRANT SElECT ON `xueya-0`.* TO 'xytest'@'%' IDENTIFIED BY "6TfBAHypbGL@hRUS";							#带特殊字母的数据库用反引号
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值