MySQL安装以及客户端的使用

MySQL安装以及客户端的操做

MySQL Client Mannualhtml

在linux上安装

Yum Repositorymysql

sudo yum install mysql-community-server

APTlinux

sudo apt-get install mysql-server

安装后开启MySQL Server服务

systemctl:sql

systemctl {start|stop|restart|status} mysqld

或者 service:docker

service mysqld {start|stop|restart|status}

MySQL 服务初始化

第一次开启服务:shell

  • 服务端初始化.数据库

  • SSL证书与密钥被生成,存放在数据文件夹中.bash

  • validate_password is installed and enabled.session

  • 超级用户:'root'@'localhost 被建立. 密码存放在日志中:ide

    sudo grep 'temporary password' /var/log/mysqld.log

开启服务后设置密码:

mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED BY 'MyNewPass';
  • Note:

    • 密码要至少包含:

    • 一个大写字母

      • 一个小写字母
      • 一个数字
      • 一个特殊字符
      • 密码长度不小于8
    • user分为host为localhost%的用户:

      • User@% 容许从全部的ip访问. User@localhost 只容许从localhost访问。

使用docker部署MySQL

(1)使用docker安装

  • 拉取mysql

    docker pull mysql:[tag]
  • 启动镜像,配置挂载卷:

    docker run -d -p 3306:3306 --name mysql \    
    -e MYSQL_ROOT_PASSWORD="assinscreed" \
    -e MYSQL_USER="root" \
    -e MYSQL_PASSWORD="assinscreed" \
    mysql:[tag]
    • 其中数据以及配置文件挂载:

      --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
         --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \

MySQl客户端

MySQL客户端命令选项-官方文档

经常使用的MySQL客户端链接选项

输出

--auto-vertical-output

  • 若是输出数据的结果太宽,自动改为垂直显示,与sql语句以\G做用相同。

    image-20210221223009639

  • --vertical, -E:强制垂直显示。

  • --html, -H

    • 输出为HTML格式,以下:

      image-20210221224757684

  • --xml, -X:输出为xml格式

链接选项

--user=user_name, -u user_name

  • 指定用户名。

--host=host_name, -h host_name

  • 指定链接主机地址。

--password[=password], -p[password

  • 指定登陆密码,注意的是密码与选项之间不能有空格。

--port=port_num, -P port_num

  • 指定MySQL服务的TCP端口号

--database=db_name, -D db_name

  • 指定使用的数据库

--connect-timeout=value

  • 链接超时秒数,默认为0

--wait, -w

  • 若是链接不能创建,则会等待相应秒数重连。

--reconnect

  • 若是中途链接终端,则自动重连
  • To suppress reconnection behavior, use --skip-reconnect.

功能执行

--execute=statement, -e statement

  • 处理提供的statement 语句并推出mysql。

--init-command=str

  • 链接以后执行str。

--line-numbers

--max-allowed-packet=value

  • The maximum size of the buffer for client/server communication. The default is 16MB, the maximum is 1GB.

--max-join-size=value

  • The automatic limit for rows in a join when using --safe-updates. (Default value is 1,000,000.)

--named-commands, -G

  • 能够在mysql中使用命令,如:quit\q能够同时使用。

  • --skip-named-commands:关闭长命令的使用。如可以使用\qquit没法使用

--no-beep, -b

  • 发生错误时,禁止发出声音.

--print-defaults

  • Print the program name and all options that it gets from option files.

--quick, -q

  • Do not cache each query result, print each row as it is received. This may slow down the server if the output is suspended. With this option, mysql does not use the history file.

--verbose, -v

  • Verbose mode. Produce more output about what the program does. This option can be given multiple times to produce more and more output. (For example, -v -v -v produces table output format even in batch mode.)

--version, -V

  • 打印版本信息并退出。

MySQL客户端命令

MySQL客户端命令官方文档

mysql> help

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.
query_attributes(\) Sets string parameters (name1 value1 name2 value2 ...)
for the next query to pick up.

For server side help, type 'help contents'

经常使用:

clear, \c
  • 清空当前的输入,示例:

    mysql> select wrong
        -> \c
    mysql>
connect [db_name [host_name]], \r [db_name [host_name]]
  • 从新链接指定主机下的数据库。
delimiter str, \d str
  • 指定SQL语句分界符号(终止符),默认为`;
prompt [str], \R [str]
  • 修改提示符为指定的字符串。
resetconnection, \x
  • 重建链接,并清除seesion,示例:

    mysql> SELECT LAST_INSERT_ID(3);
    +-------------------+
    | LAST_INSERT_ID(3) |
    +-------------------+
    |                 3 |
    +-------------------+
    
    mysql> SELECT LAST_INSERT_ID();
    +------------------+
    | LAST_INSERT_ID() |
    +------------------+
    |                3 |
    +------------------+
    
    mysql> resetconnection;
    
    mysql> SELECT LAST_INSERT_ID();
    +------------------+
    | LAST_INSERT_ID() |
    +------------------+
    |                0 |
    +------------------+
source file_name, \. file_name
  • 执行文件中的SQL语句。
system commmand, \! command
  • 经过linux系统的shell执行命令。
tee [file_name], \T [file_name]
  • 同时将输出结果输入到指定的文件中。

HELP命令的使用

mysql> help contents
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the
following categories:
   Account Management
   Administration
   Data Definition
   Data Manipulation
   Data Types
   Functions
   Functions and Modifiers for Use with GROUP BY
   Geographic Features
   Language Structure
   Plugins
   Storage Engines
   Stored Routines
   Table Maintenance
   Transactions
   Triggers
  • 可使用%_,进行命令的匹配:

    mysql> HELP rep%
    Many help items for your request exist.
    To make a more specific request, please type 'help <item>',
    where <item> is one of the following
    topics:
       REPAIR TABLE
       REPEAT FUNCTION
       REPEAT LOOP
       REPLACE
       REPLACE FUNCTION

处理文本中的SQL语句

读取文件中的SQ语句(经常使用于还原mysqldump备份的数据):

mysql db_name < text_file

若是文件中指定了数据库(use db_name),能够直接:

mysql < text_file

若是已经进入了mysql:

mysql> source file_name
mysql> \. file_name
相关文章
相关标签/搜索