mysql基础-数据库初始化操作必要步骤和客户端工具使用-记录(二)

0x01

mysql启动时,读取配置文件的顺序   

Default options are read from the following files in the given order:
/etc/mysql/my.cnf     /etc/my.cnf      ~/.my.cnf

使用配置文件的方式
1.它依次查找多个需要查找的文件,结果是所有文件交集
2.如果某参数在多个文件中宏出现多次,后配置的最终生效

可以使用 mysql --help --verbose 来查看
1.显示mysql的程序启动时可用的选项,通常都是长选项
2.显示mysqld配置文件中可用的服务变量
mysql > show global variables
mysql > show session variables

0x02

1. 在mysql数据库安装好之后,首先的初始化操作就是删除匿名用户

查询有哪些匿名用户

select host,user,password from mysql.user;

删除对应的匿名用户,实际情况,可根据实际情况删除。

drop user ''@'localhost';

drop user ''@'stuphp.hping3.com';

用户名账号由两部分组成:username@host
host还可以使用通配符
%:任意长度的任意字符
_:匹配任意单个字

2. 给所有root用户设置密码

第一种方式修改密码:  

实例 ---> mysql > set password for root@localhost = password('photon'); 

格式 ---> mysql > set password for username@host = password( 'your_password')

第二种方式修改密码:

该方式修改密码,是直接修改mysql下的user表,所有要先进到user表中执行

故   use mysql;

update user set password = password('redhat') where user = 'root';

让其立即生效   ---- 即 让其通知mysqld重新读取 user表

flush privileges;

第三种方法修改密码:

实例 ---->  

mysqladmin -uroot -hlocalhost password 'photon' -p  ----localhost  是一个主机IP

mysqladmin -u root -h localhost -p flush-privileges    ----让其生效

格式 ---->  

mysqladmin -u UserName -h Hot password 'new_password' -p
mysqladmin -u UserName -h Host -p flush-privileges

0x03

接入MySQL服务器
mysql <-mysql protocol-> mysqld

mysql接受链接请求
本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1(localhost)地址或lo接口进行通信
Linux OR Unix:Unix Sock,/tmp/mysql.scok,/var/lib/mysql/mysql.sock


Widows:memory pipe
远程通信:客户端与服务器位于不同的主机,或在统一主机便使用非回环地址通信
TCP Socket

客户端工具:mysql,mysqladmin,mysqldump,mysqlcheck
[client]

通信的选项:
-u,--user=
-h, --host=
-p, --password=
--protocol={tcp|socket|memory|pipe}
--port=
--socket=/tmp/mysql.sock

mysql监听的端口:3306/tcp

非客户端类的管理工具:myisamchk,myisampack
myisamchk --检测工具
myisampack 打包工具
mysql:
交互式模式
mysql>
脚本模式
mysql < /path/to/mysql_scripy.sql

mysql交互式模式:
客户端命令
mysql> help
mysql>?
c:取消命令的执行
g
G
q
!
s
. /path/to/mysql_script.mysql 批处理zhixingmysql命令
# 命令补全 --- 她需要读取表重新生成hash ,会导致比较大的数据,出现卡的情况
服务器端命令:需要命令结束符,默认为分号(;)
mysql> help关键字

help contents   获取整体列表

help  keyword   获取相关命令的列表

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   (
) 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   (
) Disable pager, print to stdout.
notee     (	) 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.

0x04

mysql命令行选项
--compress 压缩传输
--default-character-set 默认的字符集设置
-V: 显示版本号
-v: 显示详细信息
--ssl-ca ca证书
--ssl-capath ca证书的文件夹
--ssl-cert 客户端证书
--ssl-cipher 加密
--ssl-key 使用的私钥
--ssl-verify-server-cert 验证服务器端证书

--database= -D:指定要使用的数据库

mysql命令提示符
mysql> 等待输入命令
'> 前面提供的‘未提供结束’
”> 引用字符串
`> 引用字符串
—> 续航符
/*> 注释信息

mysql快捷键和Linux下shell差不多

ctrl+w:删除光标所在处之前的一个单词  --- 同shell
ctrl+u:删除光标之前的所有内容到行首  --- 同shell
ctrl+y:粘贴之前ctrl+w或者ctrl+u删除的内容
ctrl+a:移动光标至行首     --- 同shell
ctrl+e:移动光标至行尾     --- 同shell

mysql的输出格式

-H --html:输出为html格式的文档
-X --xml:输出为xml格式的文档

--safe-updates:发送命令时拒绝使用无where字句的update或delete命令   但是如果使用limit 是可以正常执行

使用 -H参数

mysql -H -uroot -p    ----查询结果是html格式

0x05

mysqladmin工具
mysqladmin [options] command [arg] [command[arg]] .....

command
create DB_Name 创建空数据库 mysqladmin -uroot -p create mydb
-e:直接返回 mysql -uroot -p -e 'show databases;' ---不进数据库就可以查看数据库
drop DB_Name 删除数据库
debug 打开调试日志并记录与error log中
status:输出简要状态信息 mysqladmin -uroot -p status
-sleep # 指定显示延迟 mysqladmin -uroot -p status --sleep 3 sleep 指定睡眠几秒钟再显示
-count # 指定批次 mysqladmin -uroot -p status --sleep 1 --count 5 指定显示几次
extended-status:输出mysq的各状态变量及数值,相当于执行“mysql> show global status” mysqladmin -uroot -p status extended-status
flush-hosts:清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表
flush-logs:日志滚动,主要是二进制日志和中继日志
refresh:相当于同时使用flush-logs和flush-hosts

flush-privileges:通知服务器重读授权表
reload:重载授权表
flush-status:重置状态变量的值
flush-tables:关闭当前打开的表文件句柄, 但是如果有表正在被查询,就要等查询完毕,才关闭!
flush-threads:清空线程缓存
kill:杀死指定的线程,可以一次杀死多个线程,以逗号分隔,但不能有多余空格
password:修改指定用户的密码
processlist: 显示线程列表 mysqladmin -uroot -p processlist
shutdown:关闭mysqld进程

start-slave 启动从服务器进程
stop-slave 关闭从服务器进程
variables:显示mysql的各服务器进程

GUI客户端工具
Navicat for mysql    ---推荐使用该GUI工具
Toad for mysql
SQLyog
MySQL Front
phpMyAdmin

总结 -----> mysql初始化,mysql配置文件读取次序,mysql初始用户,mysql客户端命令 mysqladmin GUI

原文地址:https://www.cnblogs.com/autopwn/p/5077672.html