常用mysql命令:
常用导入操作
导入数据库 source命令
使用 source 命令需要我们先登录到 mysql 中,并创建一个空的数据库:
mysql > create database abc
mysql > use abc
mysql > set names utf8
mysql > source /home/fairy/桌面/job.sql # 导入备份数据库
这种方法导入也可以。(不管是导入数据库表结构和数据都行)
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
mysql -u root -p bbb </home/Person.sql
查看mysql安装路径
查看mysql安装路径:
指令 ps -ef|grep mysql 得出结果
root 968 1 0 18:25 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/tmp/mysqld/mysqld.pid
mysql 1400 968 0 18:25 ? 00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/tmp/mysqld/mysqld.pid --socket=/tmp/mysql.sock --port=3306
root 9318 7985 0 19:49 pts/0 00:00:00 grep --color=auto mysql
其中:basedir:这个后面就是mysql安装路径(一般需要把mysqldump 这个命令连接到默认的路径),就是说如果我安装的路径是:/usr/local/mysql 的话 那么mysqldump 的文件就在 他的 下级 目录 bin 里面
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
这个就是快捷命令
常用导出操作
导出数据库中的表结构和数据
格式:mysqldump -u root -p 数据库名字 > /要生成sql文件的路径/文件名字.sql
mysqldump -u root -p syn > /home/syn.sql #导出数据库
123456 #输入数据库密码
扩展:
mysqldump -u root -p bbb Person > /home/Person.sql #导出数据库中的某个表(注意:首先数据库要有bbb这个数据库才能使用这个命令)
注意:(在执行上述命令之前先看看)
创建数据库:
(1 )登录mysql:mysql -u root -p
(2 )查看是否有bbb这个数据库
show databases
(3 )没的话创建一个(有的就不用了)
create database bbb
(4 )设置数据库编码
set names utf8
只导出数据库中的表结构:
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
/usr/local/mysql/bin/ mysqldump -uroot -p -d syn > syn.sql
注:/usr/local/mysql/bin/ —> mysql的data 目录
mysqldump -u root -p --skip_add_locks --skip-lock-tables -q -d xxl_job > /var/lib/mysql/xxl_job2.sql 导出表结构 -d参数表结构
mysqldump -u root -p --skip_add_locks --skip-lock-tables -q ctg_sysmgr > /var/tmp/ctg_sysmgr.sql 导出全库
mysqldump -u root -p1B25mzXwmcxk0N6qXhI0 --skip_add_locks --skip-lock-tables ctg_sysmgr organization > /tmp/organization.sql 导出ctg_sysmgr库的organization表
pxc集群常用操作
pxc 集群数据备份mysqldump命令要添加--skip-add-locks --skip-lock-tables参数
pxc 集群导入数据,要先进入mysql执行SET GLOBAL pxc_strict_mode=DISABLED
pxc 集群全部故障退出无法启动,需要在先启动的pxc机器的/data /docker/data -root/volumes/vmysql/_data 下,编辑文件grastate.dat,将safe_to_bootstrap改为1
show status like 'wsrep_cluster%'
show status like '%wsrep%'
常用查表操作
查看表结构:
use 数据库
show tables;
describe 表名称
一般简写: desc 表名称
desc oss_platform_conf
查看表内容:
select * from oss_platform_conf\G
show databases
use 库;
show tables; 查看表
更新和删除表操作
更新和删除表内容:
update ecs.oss_platform_conf set admin='{"admin":"admin","secure":false,"server":"13.11.8.13","verify":true,"timeout":10,"access_key":"JTEFEHLUCS26G236ZVSH","secret_key":"zxjEq63Ac0B6JCQ9qIvyB9Tnk9KzJqeNIGtz58l5"}' where id=1
UPDATE 表名 SET runoob_titile='test111' WHERE runoob_id=3
DELETE FROM tb_courses WHERE course_id=4
use 库;
delete from 表名; 清空表中的内容,用于对象存储刷新
或清空表内容 truncate table 表名
删除数据库:
drop database <数据库名>;
清空表内容:
delete from 表名;
删除表:
drop table 表名
修改字段操作
MySQL 中修改表字段名的语法规则如下:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
其中:
旧字段名:指修改前的字段名;
新字段名:指修改后的字段名;
新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。
例 1 :
使用 ALTER TABLE 修改表 tb_emp1 的结构,将 col1 字段名称改为 col3,同时将数据类型变为 CHAR(30 ),SQL 语句和运行结果如下所示。
mysql > ALTER TABLE tb_emp1
-> CHANGE col1 col3 CHAR(30 )
Query OK, 0 rows affected (0 .76 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql > DESC tb_emp1
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col3 | char(30) | YES | | NULL | |
| id | int(11 ) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| deptId | int(11 ) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0 .01 sec)
CHANGE 也可以只修改数据类型,实现和 MODIFY 同样的效果,方法是将 SQL 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
提示:由于不同类型的数据在机器中的存储方式及长度并不相同,修改数据类型可能会影响数据表中已有的数据记录,因此,当数据表中已经有数据时,不要轻易修改数据类型。
修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 MySQL 中修改字段数据类型的语法规则如下:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
其中:
表名:指要修改数据类型的字段所在表的名称;
字段名:指需要修改的字段;
数据类型:指修改后字段的新数据类型。
例 2 :
使用 ALTER TABLE 修改表 tb_emp1 的结构,将 name 字段的数据类型由 VARCHAR(22 ) 修改成 VARCHAR(30 ),SQL 语句和运行结果如下所示。
mysql > ALTER TABLE tb_emp1
-> MODIFY name VARCHAR(30 )
Query OK, 0 rows affected (0 .15 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql > DESC tb_emp1
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| id | int(11 ) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| col2 | int(11 ) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
语句执行后,发现表 tb_emp1 中 name 字段的数据类型已经修改成 VARCHAR(30),修改成功。
######################删除字段
删除字段是将数据表中的某个字段从表中移除,语法格式如下:
ALTER TABLE <表名> DROP <字段名>;
其中,“字段名”指需要从表中删除的字段的名称。
例 3:
使用 ALTER TABLE 修改表 tb_emp1 的结构,删除 col2 字段,SQL 语句和运行结果如下所示。
mysql> ALTER TABLE tb_emp1
-> DROP col2;
Query OK, 0 rows affected (0.53 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1 | int(11 ) | YES | | NULL | |
| id | int(11) | YES | | NULL | |
| name | varchar(30 ) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
常用用户操作
用户操作:
删除用户:
drop
drop user XXX
如果要删除'XXX'
delete
delete from user where user='XXX' and host='localhost'
区别
drop不仅会将user表中的数据删除,还会删除其他权限表的内容。
而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH PRIVILEGES
新建用户:
create user 'haproxy'
授权test用户仅能操作test_database数据库:
grant all privileges on test_database.* to 'test'
修改test用户密码为456 :
update user set authentication_string = password('456' ) where user = 'test' and host = '%' ;
撤销用户权限:
revoke all on 数据库名.表名 from '用户名'
其它命令
配置文件和其它操作:
禁止mysql serverDNS解析,解决mysql could not be resolved:警告:
在my.ini或者my.cnf的mysqld下添加如下,然后重启服务:
skip -host-cache
skip -name-resolve
它将禁止 MySql Server 对外部连接进行 DNS 解析,这么设置还解决了 就是某些dns解析不正常导致的连接巨慢问题。使用这一选项可以消除 MySql 进行 DNS 解析的时间。
但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP 地址方式,否则MySQL将无法正常处理连接请求,需要修改一下将localhost替换为127 .0 .0 .1 。
select now()
select current_date()
修改mysql时间:
1 、用“sudo cat my.cnf”命令查看“my.cnf”文件;
2 、用“vim mysqld.cnf”命令编辑文件内容,在文件内添加“default-time_zone = '+8:00' ”语句;
3 、重启mysql使新时间生效。
查看mysql连接超时时间,默认28800 ,8 小时
show variables like '%timeout%'
查看一次最大插入数据,默认4 M
show VARIABLES like '%max_allowed_packet%'
查看用户权限
show grants for root
修改mysql-root密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 12345678
mysql 不能输入中文:(以下是显示的,修改成如下)
mysql > show variables like'%char%'
->
+---------------------------+---------------------------------------------+
| Variable_name | Value |
+---------------------------+---------------------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/percona-xtradb-cluster/charsets/ |
| ft_query_extra_word_chars | OFF |
+---------------------------+---------------------------------------------+
修改语句 例:set character_set_database=utf8
查看最大连接数
show variables like '%max_connections%'
修改最大连接数 set GLOBAL max_connections=5000
查看连接数
show full processlist
查看表约束
SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name='表名'
主从同步
查看主状态show master status\G
查看从状态show slave status\G
数据库改名:
rename database 旧数据库名 to 新数据库名
本文作者:燚林
本文链接:https://www.cnblogs.com/lydongbk/p/17677269.html
版权声明:本作品采用本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。许可协议 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步