mysql系统配置文件查找次序:
/etc/mysql/my.cnf
/etc/my.cnf
~/.my.cnf
使用配置文件的方式
1、它依次查找每个需要查找的文件,结果是所有文件并集:
2、如果某参数在多个文件中出现多次,后读取的最终生效:
/usr/local/mysql/bin/mysqld --help --verbose#这里的mysql是编译安装的
显示mysqld程序启动时可用的选项,通常都是长选项
mysql> SHOW GLOBAL VARIABLES
mysql> SHOW SESSION VARIABLES
初始化:第二个操作
1、删除所有匿名用户
mysql > DROP USER ''@'localhost'
示例如下:
mysql> SELECT user,host,password from user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
| root | host185 | |
| root | 127.0.0.1 | |
| | localhost | |
| | host185 | |
+------+-----------+----------+
5 rows in set (0.02 sec)
mysql> drop user ''@localhost;
Query OK, 0 rows affected (0.03 sec)
mysql> drop user ''@host185;
Query OK, 0 rows affected (0.04 sec)
用户帐号由两部分组成:username@host
host还可以使用通配符:
%:任意长度的任意字符
_:匹配任意单个字符
2、给所有的root用户设定密码
第一种方式:
mysql> SET PASSWORD FOR username@host = PASSWORD('your_password');
第二种方式:
mysql> UPDATE user SET password = PASSWORD('your_password') WHERE user='root';
mysql> FLUSH PRIVILEGES;
第三种方式:
mysqladmin -uUserName -hHost -p password 'new_password'
mysqladmin -uUserName -hHost -p flush-privileges
示例:设定用户的密码
mysql> update mysql.user set password=password('huaxia') where user='root';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0
查看设定密码的用户和主机以及密码
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *728E5AA5AC1AF35A788CCC519F3027936273D123 |
| root | host185 | *728E5AA5AC1AF35A788CCC519F3027936273D123 |
| root | 127.0.0.1 | *728E5AA5AC1AF35A788CCC519F3027936273D123 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
连入MYSQL服务器
mysql client <-- mysql="" protocol--=""> mysqld
mysqld接受用户请求:
本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1地址或lo接口进行通信:
Linux OR Unix: Unix Sock,/tmp/mysql.sock , /var/lib/mysql/mysql.sock
Windows:memory,pipe
远程通信:客户端与服务器位于不同的主句,或在同一主机便使用非回环地址通信
TCP socket
客户端工具:mysql,mysqladmin,mysqldump,mysqlcheck
[ client ]
通行的选项:
-u, --user=
-h,--host=
-p,--password={tcp|socket|memory|pipe}
--port=
--socket= 例如: /tmp/mysql.sock
--protocol=
mysql监听的端口:3306/tcp
非客户端类的管理工具:myisamchk,myisampack
mysql:
交互式模式
mysql>
脚本模式
mysql < /path/to/mysql_script.sql
mysql交互式模式:
客户端命令
mysql> help
mysql> \?
\c
\g
\G
\q
\!
\s
\. /path/to/mysql_script.sql
服务器端命令:需要命令结束符,默认为;
mysql> help contents
mysql > help keyword
mysql 命令行选项:
--compress
--database=,-D
-H , --html, 输出结果为html格式
-X,--xml:输出格式为xml
--safe-updates: 拒绝使用无where字句的delete或update命令:
mysql> 等待输入命令
->
'>
">
`>
/*>
mysql的快捷键:
Ctrl + w: 删除光标之前的单词
Ctrl + u: 删除光标之前至命令行首的所有内容
Ctrl + y: 黏贴使用Ctrl+w或Ctrl+u删除的内容
Ctrl + a: 移动光标至行首
Ctrl + e: 移动光标至行尾
mysqladmin工具:
mysqladmin [ options ] command [ arg ] [ command [ arg ] ] ...
command:
create DB_NAME
drop
DB_NAME
debug: 打开调试日志并记录于error log中:
status: 显示简要状态信息
--sleep #: 间隔时长
--count #: 显示的批次
extended-status: 输出mysqld的各状态变量及其值,相当于执行"mysql> SHOW GLOBAL STATUS"
flush-hosts: 清空主机相关的缓存: DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机
列表
flush-logs: 日志滚动,二进制日志和中继日志
refresh: 相当于同时使用flush-logs和flush-hosts
flush-privileges: 通知服务器重读授权表
variables: 输出mysqld的各服务器变量
flush-status: 重置状态变量
flush-tables: 关闭当前打开的表文件句柄
flush-thred: 清空线程缓存
kill: 杀死指定的线程,可以一次杀死多个线程,以逗号分隔,但不能有多余空格
password: 修改指定用户的密码
ping:
processlist: 显示mysql线程列表
示例:
[root@host185 ~]# mysqladmin -uroot -p processlist
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 8 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
shutdown: 关闭mysqld进程
start-slave:
stop-slave:
GUI客户端工具:
Navicat for mysql
phpMyAdmin