-
linux系统下登录mysql
mysql -hip -uusername -ppassword;
-
创建用户
CREATE USER username IDENTIFIED BY 'password';
-
授权
GRANT ALL PRIVILEGES ON *.* TO 'username'@'ip' IDENTIFIED BY 'password'; 全部授权 GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER ON *.* TO 'username'@'访问ip' WITH GRANT OPTION;
-
查看所有用户
SELECTuser
,host
,authentication_string
FROMmysql
.user
; -
修改用户访问授权
RENAME USER ‘user’@’%’ TO ‘user’@‘10.121.%’; -
修改密码
1.已知原密码登录mysql系统 [root@5bso1 ~]# mysql -hlocalhost -uroot -proot mysql> use mysql mysql> update user set password=password("test") where user="root"; mysql> flush privileges; mysql> exit
2.忘记原来的myql的root的密码
修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
保存配置文件后,重启MySQL服务 service mysqld restart
再次进入MySQL命令行 mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root密码即可。
依次输入:
use mysql; 更改数据库
mysql版本大于等于5.7
UPDATE user SET authentication_string=password("root") WHERE user='root';
mysql版本低于5.7
UPDATE user SET PASSORD =password("passwd") WHERE USER= 'root'; 重设密码
否则会出现 Unknown column 'password' in 'field list'
flush privileges; 刷新MySQL的系统权限相关表,以防止更改后拒绝访问;或或者重启MySQL服务器
密码修改完毕后,再按照步骤1中的流程,删掉配置文件中的那行,并且重启MySQL服务,新密码就生效了。
本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。
-
复制表
1.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
2.只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 (mysql5以上支持where) 或者 CREATE TABLE 新表 LIKE 旧表
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表
-
导出表数据
1.单表 mysql的bin目录下,利用mysqldump 导出整表数据
格式:mysqldump -hip -uusername -ppassword schemaname tablename --where " 条件 ">存储路径\xxx.sql 例如:mysqldump -uroot -proot seo seoanswer --where=" id <=200 and id>100" > D:\1.sql
2.导出指定表字段
命令登录mysql 登录格式:mysql -hip -uusername -ppassword; 导出格式:mysql -uroot -e "select 字段 from 表名 limit 200001,300000 INTO OUTFILE '输出目录'" 例如:mysql -uroot -e "select URLADDRESS from seo.appanswerlist_urladdress limit 200001,400000 INTO OUTFILE 'D://soft//mysql//mysql-5.7.23-winx64//123.sql'"
如果出现下图说明导出文件必须在指定目录下
可以用show vairables like '%secure%'查看目录位置
secure_file_priv 为空,可以通过修改my.ini 在文件最后一行添加“secure_file_priv = 指定目录” 保存即可。重启mysql服务 -
命令: show status;
命令:show status like ‘%下面变量%’;Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。 Connections 试图连接MySQL服务器的次数。 Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。 Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。 Delayed_writes 用INSERT DELAYED写入的行数。 Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。 Flush_commands 执行FLUSH命令的次数。 Handler_delete 请求从一张表中删除行的次数。 Handler_read_first 请求读入表中第一行的次数。 Handler_read_key 请求数字基于键读行。 Handler_read_next 请求读入基于一个键的一行的次数。 Handler_read_rnd 请求读入基于一个固定位置的一行的次数。 Handler_update 请求更新表中一行的次数。 Handler_write 请求向表中插入一行的次数。 Key_blocks_used 用于关键字缓存的块的数量。 Key_read_requests 请求从缓存读入一个键值的次数。 Key_reads 从磁盘物理读入一个键值的次数。 Key_write_requests 请求将一个关键字块写入缓存次数。 Key_writes 将一个键值块物理写入磁盘的次数。 Max_used_connections 同时使用的连接的最大数目。 Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。 Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。 Open_tables 打开表的数量。 Open_files 打开文件的数量。 Open_streams 打开流的数量(主要用于日志记载) Opened_tables 已经打开的表的数量。 Questions 发往服务器的查询的数量。 Slow_queries 要花超过long_query_time时间的查询数量。 Threads_connected 当前打开的连接的数量。 Threads_running 不在睡眠的线程数量。 Uptime 服务器工作了多少秒。
-
最大连接数
show variables like "%max_connections%"
11.设置server5.7一上密码长度
set global validate_password_policy=0;
set global validate_password_length=1;
set global validate_password_mixed_case_count=2;
SHOW VARIABLES LIKE 'validate_password%';
flush privileges;