mysql命令行工具常用命令 | 系统数据库与数据库管理 | 系统变量 | 日志类型 | 配置文件 | 字符集
用yum安装查看mysql安装目录和配置文件
#rpm -ql mysql-community-server
连接远程mysql
#mysql -h localhost -uroot -p
直接连接数据库里面的 mysql库
#mysql -h localhost -uroot -p mysql
通过IP访问,需要mysql开通远程访问功能
#mysql -h 192.168.31.3 -uroot -p
加端口连接
#mysql -h 192.168.31.3 -uroot -p --port=3306
连接数据库执行SQL命令
#mysql -h localhost -uroot -p -e "show databases;"
help可以查看grant的
#help grant
允许远程用户访问数据库
grant 权限 on 数据库对象 to 用户
#GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
添加防火墙端口
#firewall-cmd --zone=public --add-port=3306/tcp --permanent
删除防火墙端口
#firewall-cmd --zone=public --remove-port=3306/tcp --permanent
重启防火墙
#firewall-cmd --reload
查看防火墙开放端口
#firewall-cmd --list-ports
MySQL命令行工具命令
charset charset_name , \C charset_name example: charset utf8 ,\C utf8 更改mysql默认字符编码
connect [db_name hostname], \r [db_name hostname] 重新连接服务器
delimiter str, \d str 更改mysql解释SQL语句之间的分隔符。默认是分号
edit, \e 编辑上一步输入的语句
ego, \G example: select * form mysql.user\G; 将当前语句发送到要执行的服务器,并使用垂直格式显示结果
use db_name, \u db_name 使用db_name座位默认数据库
go, \g 将当前语句发送到要执行的服务器
prompt [str], \R [str] 重新配置mysql提示符
resetconnection, \x 重新连接以清除会话状态
source file_name, \.file_name 读取文件并执行其中包含的语句
status, \s 输出正在使用的连接和服务器的状态信息
system command, \! command example:system ls可以在mysql中ls系统中的目录和文件 使用默认的shell解释器执行命令
tee [file_name],\T [file_name] 记录语句及其输出,所有的数据都会附加到给定的文件中
exit, quit, \q 退出mysql
数据库管理
查看当前正在use那个数据库
#select database();
创建新数据库
#create database test;
删除数据库
#drop database test;
进入数据库
#use test;
查看数据库下所有表
#show tables;
查看表结构
#describe user;
系统变量
查看当前系统变量当前值
SHOW [GLOBAL | SESSION] STATUS语句查看这些变量及值
查看当前系统变量
#show variables;
模糊查询系统变量
#show variables like '%max%';
设置系统变量值
set global max_connections=1024;
全局变量:整个实例。使用SET GLOBAL VAR_NAME=VALUE语句更改变量值
回话变量:作用域客户端回话,使用SET SESSION VAR_NAME=VALUE语句更改变量值
系统变量表:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
动态系统变量表:https://dev.mysql.com/doc/refman/5.7/en/dynamic-system-variables.html
日志类型
Error log 实例启动、运行或关闭时的问题
General query log 建立客户端连接和从客户端接收的语句(所有接收的语句)
Binary log 更改数据的语句(也可以用于复制)
Relay log 从复制的主服务器接收到的数据更改语句
Slow query log 查询花费超过long_query_time(秒)执行的语句
修改配置文件
#vi /etc/my.cnf
#error log
log-error=/var/log/mysqld.log
#general query log
general_log=1
general_log_file=/var/log/mysqld/general_query.log
#binary log
server_id=100
log-bin=mysql-bin
#slow query log
slow_query_log=1 #启用
long_query_time=10 #超过多少秒的sql语句记录
slow_query_log_file=/var/log/mysqld/slow_query.log
运行中开启General query log、Slow query log
查看系统变量general
#show variables like 'general%';
#show variables like 'slow%';
关闭输出日志
#set global general_log=OFF;
#set global slow_query_log=OFF;
配置文件
默认位置
第一:/etc/my.cnf
第二:/etc/mysql/my.cnf
第三:mysql安装目录下寻找(/usr/local/mysql)
#vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
port=3306
bind-address=0.0.0.0
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=1024
default-storage-engine=InnoDB
查看数据库创建时的信息
#show create database test;
字符集
更改数据库字符集
#set global character_set_database=utf8
更改数据库客户端字符集
#set global character_set_client=utf8
更改连接默认字符集
#set global character_set_connection=utf8
更改已经存在的数据库字符集
#alter database mydb character set utf8
更改存在表的字符集
#use mytable
#alter table mytable default character set utf8
更改存在表字段字符集
alter table mytable change old_column new_colunm varchar(255) character set utf8;