您的当前位置:首页正文

Mysql笔记-v2

2024-11-28 来源:个人技术集锦

零、

help、\h、? 调出帮助

mysql> \h

For information about MySQL products and services, visit:
   http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
   http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
   https://shop.mysql.com/

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. 设置结束符
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.

For server side help, type 'help contents'

\c或ctrl+c 清除当前输入

登陆mysql:

mysql [-u用户名] [-h主机名(或ip)] [-p密码]
不写-u用户名表示用root登陆
不写-h主机名(ip)表示主机为localhost
不写-p密码表示密码为空

show variables like ‘%character%’; like相当于linux中的grep

清空屏幕:CTRL+L

一、Mysql格式化输出结果(Linux命令行)

1.使用G按行垂直显示结果

如果一行很长,需要这行显示的话,在linux命令行中看起结果来就非常的难受。在SQL语句或者命令后使用G而不是分号结尾,可以将每一行的值垂直输出。这个可能也是大家对于MySQL最熟悉的区别于其他数据库工具的一个特性了。

mysql> select * from db_archivelog\G

*************************** 1. row ***************************
id: 1
check_day: 2008-06-26
db_name: TBDB1
arc_size: 137
arc_num: 166
per_second: 1.6
avg_time: 8.7

2.使用pager设置显示方式

如果select出来的结果集超过几个屏幕,那么前面的结果一晃而过无法看到。使用pager可以设置调用os的more或者less等显示查询结果,和在os中使用more或者less查看大文件的效果一样。

使用more
mysql> pager more
PAGER set to ‘more’
使用less
mysql> pager less
PAGER set to ‘less’
还原成stdout
mysql> nopager
PAGER set to stdout

3.使用tee保存运行结果到文件

可以将命令行中的所有结果保存到外部文件(不指定文件路径的话默认在运行mysql命令的路径中)中。如果指定已经存在的文件,则结果会附加到文件中。

mysql> tee output.txt
Logging to file ‘output.txt’

关闭:

mysql> notee
Outfile disabled.

4.执行Linux系统命令

mysql> system uname
Linux

mysql> \! uname
Linux

5.执行SQL文件

不指定文件路径的话默认在运行mysql命令的路径中寻找文件

mysql> source test.sql
+—————-+
| current_date() |
+—————-+
| 2008-06-28 |
+—————-+
1 row in set (0.00 sec)

6.以html格式输出结果

使用mysql客户端的参数--html,则所有SQL的查询结果会自动生成为html的table代码

$ mysql -uroot --html 
Welcome to the MySQL monitor. Commands end with ; or \g. 
YourMySQL connection id is 15
Server version: 5.7.42 MySQL Community Server (GPL) 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

7.以xml格式输出结果

跟上面差不多,使用–xml选项,可以将结果输出为xml格式

$ mysql -uroot --xml 
Welcome to the MySQL monitor. Commands end with ; or \g. 
YourMySQL connection id is 15
Server version: 5.7.42 MySQL Community Server (GPL) 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

8.修改命令提示符

prompt命令可以在mysql提示符中显示当前用户、数据库、时间等信息
通过prompt设置了当前时间显示,这样也便于在日志文件中查看每次操作的时间。
使用mysql的--prompt=" "选项,或者进入mysql命令行环境后使用prompt命令,或者修改配置文件都可以修改提示符

登录的时候设置
mysql -uroot -p --prompt="\u@\h:[\d] \r:\m:\s>" 
mysql命令行中设置
prompt \u@\h:[\d] \r:\m:\s>
配置文件中设置

/etc/my.cnf配置文件中添加[mysql]部分
在配置文件里最好使用双斜杠

[mysql]
prompt=\\u@\\h:[\\d] \\r:\\m:\\s>
\u:当前连接的用户
\h:当前连接的主机
\d:当前连接的数据库
\r:\m:\s:显示当前时间
更多参数请使用man mysql

源博客

https:///qq_36411874/article/details/63251141

二、配置文件

[client]代表客户端默认设置内容;

[mysql]代表我们使用mysql命令登录mysql数据库时的默认设置;

[mysqld]代表数据库自身的默认设置;

三、数据库mysql详解

MySQL 在安装时会自动创建一个名为 mysql 的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。

mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
33 rows in set (0.02 sec)

0. 系统默认用户

Mysql版本:8.0.11

select user,host,account_locked,authentication_string from mysql.user;
显示全文