一、mysql 登录方式
1.1 格式:mysql -u用户名 -p密码 -h ip -P 端口 -S 套接字
mysql -uvagrant -pvagrant -h 127.0.0.1 -P 3306 -S /tmp/mysql.lock
为什么有的用户可以这样登陆??
mysql -uroot -proot
or
mysql
为什么他们的登陆那么简单?答案就是 mysql配置文件设置了默认登录信息,查询如下
1.2 mysql 配置文件位置
windows中 mysql 配置文件名 my.ini 一般在mysql 安装路径/etc/my.ini
linux 中mysql配置文件名 my.cf 一般在 /etc/my.cf
1.3 mysql 配置文件信息说明
[client]
# 客户端连接时 使用的配置信息
#password = your_password
port = 3306 # -P port
socket = /tmp/mysql.sock
[mysqld]
# mysqld启动时使用的配置信息
port = 3306 # 启动时使用的ip端口
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
early-plugin-load = ""
default_storage_engine = InnoDB
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
# mysql 使用命令行登陆时的使用信息
user = vagrant # -uuser
password = vagrant # -ppassword
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
#!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
# 如 [mysql] 下面的信息
# user=vagrant 表示命令行默认使用vagrant用户
# password = vagrant 表示命令行莫恩使用vagrant密码
其他的信息由[client]下提供
二、用户创建与删除
2.1 创建权限用户
格式:
grant 权限 on 库.表 to 用户名.'主机范围' identified by '密码';(该命令也可以修改权限作业范围和用户密码)
举例1:
grant ALL on *.* to test@'127.0.0.1' identified by '123'
#说明:
# 用户名:test
# 密码:123
# 主机范围:127.0.0.1 (表示这是本即可以登陆)
# 权限作业范围*.*: 所有库,所有表
# 权限: ALL
# 登陆方式:
mysql -utest -p123 -h 127.0.0.1
举例二:
grant all blog.* 'py'@'192.168.33.1' identified by '123';
# 说明:
# 用户名:py
# 密码:123
# 主机范围:192.168.33.1(只有该ip主机可以登陆)
# 权限作业访问:blog数据库下的所有表
# 权限: ALL
另外说明:
# 想要命令立即生效:可以在命令执行后在执行下面命令
# flush privileges;
2.2 删除权限用户
格式:
drop user '用户名'@'主机范围'; # 执行命令即可删除 权限用户
flush privileges; # 该命令会立即生效上面执行的sql 语句
2.3 查看用户
select * from mysql.user;
# 也可以使用如下操作
# use mysql
# select * from user
# 上面的mysql.user ,简化了进入mysql库这一步
三、权限授权与撤销
3.1 查看可创建的用户权限
命令: show privileges;
3.2 删除用户授权
格式:
revoke 权限 on 库.表 from '用户名'@'主机范围';
# 该命令即使创建用户,也是修改用户权限
# 用户名和主机范围 必须是已创建过的,这样才可以修改,
举例:
revoke ALTER,UPDATE,CREATE,INSERT on *.* from 'py'@'192.168.33.1';
# 将用户名:py
# 主机名:192.168.33.1
# 权限作用范围*.*: 所有的库下面的表都删除ALTER,UPDATE,CREATE,INSERT 权限
3.3 查看用户权限
格式:
show grants for '用户名'@'主机范围';
# 例如:
# show grant for 'root'@'localhost';