• MySQL权限管理、配置文件(三)


    一、MySQL权限管理

    GRANT 权限 ON 授权范围  TO '用户名'@'允许的ip(所有%)' IDENTIFIED BY '用户密码';
    
    权限:参加下表,一般常用的是CREATE、DELETE、UPDATE、SELECT
    授权范围:1.库名.表名(全部*) 2.所有数据库 *.*

    例:

    # 为word用户授权wordpress数据库所有的权限 ALL 后面+ PRIVILEGES
    GRANT ALL PRIVILEGES ON wordpress.* TO 'word'@'%' IDENTIFIED BY 'password';
    # 刷新权限 FLUSH PRIVILEGES;
    # 查看权限 show grants
    for word@'%';
    # 移除权限 EVOKE ALL PRIVILEGES ON
    *.* (库名或者 '*'-表示全部) FROM '用户名'@'ip';
    # 删除用户 DROP USER word@
    '%';
    # 修改用户密码 SET PASSWORD FOR
    'word'@'%' = PASSWORD('123456');

    # 为远程登录的用户增加用户授权的命令
    GRANT ALL PRIVILEGES ON *.* to 'root'@'192.168.5.%' identified by 'Wza7pK82016BC' with grant option;

    all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
    on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写'*'表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
    to:将权限授予哪个用户。格式:'用户名'@'登录IP或域名'。%表示没有限制,在任何主机都可以登录。比如:'lin'@'192.168.0.%',表示yangxin这个用户只能在192.168.0.*的IP段登录
    identified by:指定用户的登录密码
    with grant option:表示允许用户将自己的权限授权给其它用户。root登录后没有授权选项。
    权限 上下文
    CREATE Create_priv 数据库、表或索引
    DROP Drop_priv 数据库或表
    GRANT OPTION Grant_priv 数据库、表或保存的程序
    REFERENCES References_priv 数据库或表
    ALTER Alter_priv
    DELETE Delete_priv
    INDEX Index_priv
    INSERT Insert_priv
    SELECT Select_priv
    UPDATE Update_priv
    CREATE VIEW Create_view_priv 视图
    SHOW VIEW Show_view_priv 视图
    ALTER ROUTINE Alter_routine_priv 保存的程序
    CREATE ROUTINE Create_routine_priv 保存的程序
    EXECUTE Execute_priv 保存的程序
    FILE File_priv 服务器主机上的文件访问
    CREATE TEMPORARY TABLES Create_tmp_table_priv 服务器管理
    LOCK TABLES Lock_tables_priv 服务器管理
    CREATE USER Create_user_priv 服务器管理
    PROCESS Process_priv 服务器管理
    RELOAD Reload_priv 服务器管理
    REPLICATION CLIENT Repl_client_priv 服务器管理
    REPLICATION SLAVE Repl_slave_priv 服务器管理
    SHOW DATABASES Show_db_priv 服务器管理
    SHUTDOWN Shutdown_priv 服务器管理
    SUPER Super_priv 服务器管理

    二、MySQL的连接命令

    # tcp/ip 连接
    mysql -uroot -p123456 -h 192.168.7.80 -P 3306
    
    # socket 连接
    mysql -uroot -p123456 -S /usr/local/mysql/mysql.sock
    
    # 直接在linux客户端执行mysql的命令
    # mysql -uroot -p123456 -e 'show databases;'
    
    # 导入指定的数据库
    # mysql -uroot -p123456 wordpress < wordpress.sql

    三、启动和停止数据库

    # 数据库启动流程
    mysql.server(/etc/init.d/mysqld start) --> mysqld_safe(/usr/local/mysql/bin/mysqld_safe &) --> mysqld
    
    # 单实例启动命令
    /etc/init.d/mysqld start
    /usr/local/mysql/bin/mysqld_safe &
    
    # 单实例关闭服务命令
    /etc/init.d/mysqld stop
    mysqladmin -uroot -p123456 shutdown 
    
    # 多实例启动服务命令
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf &
    
    # 多实例关闭服务命令
    mysqladmin -uroot -p123456  -S /data/mysql2/3306.sock shutdown

    四、my.cnf配置文件

    4.1 定制mysql启动时的参数

    ./mysqld_safe --socket=/tmp/my.sock &

    4.2 使用配置文件my.cnf

    优先级:命令行 --> 初始化配置文件 --> 预编译的选项

    4.3 初始化配置文件读取顺序

    /etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> defaults-extra-file --> ~/.my.cnf

    注意:以最后一个读到的配置文件为准,如果使用./bin/mysqld_safe守护进程启动mysql数据时,使用了--defaults-file=<配置文件路径>参数,这时只会使用这个参数指定的配置文件。

    mysqld_safe --defaults-file=/tmp/my.conf &

    4.4 MySQL初始化配置文件书写格式,依靠标签来识别服务器和客户端

    [server]         # 所有服务器程序
    [mysqld]         # 特定于服务器端程序
    [mysqld_safe]    # 特定于服务器端程序
    [client]         # 所有客户端程序
    [mysql]          # 特定于客户端程序
    [mysqldump]      # 特定于客户端程序

    4.5 配置文件样例

    # cat /etc/my.cnf
    [mysqld]
    server_id=80
    port=3306
    basedir=/usr/local/mysql
    datadir=/backup/data
    socket=/tmp/mysql.sock 
    log_bin=/backup/binlog/mysql-bin
    log_error=/var/log/mysql.log
    binlog_format=row
    sync_binlog=1
    character-set-server=utf8
    # 慢查询日志开启
    slow_query_log=1
    slow_query_log_file=/backup/slow.log
    long_query_time=0.05
    log_queries_not_using_indexes
    
    # 开启GTID的功能,否则就是普通的复制
    gtid-mode=on
    # 强制GTID的一致性
    enforce-gtid-consistency=true
    # 强制从库记录二进制日志;slave更新是否记入日志
    log-slave-updates=1
    
    # 安全储存目录
    secure-file-priv=/backup
    autocommit=0
    # transaction_isolation=read-committed
    
    # 一般查询日志
    # general_log=on
    # general_log_file=/usr/local/mysql/server.log
    
    # [mysqld_safe]
    # log-error=/usr/local/mysql/
    # pid-file=/var/run/mysql/mysql.pid
    
    [client]
    # default-character-set=utf8
    # character-set-server=utf8
    socket=/tmp/mysql.sock
  • 相关阅读:
    记一个微信公众号个性化菜单的坑
    初学c# -- 学习笔记(六) winfrom组件圆角
    Swift中添加标记(MARK)和警告(TODO FIXME)
    iOS Xib布局某些控件显示或隐藏<约束的修改>
    [!] Unable to satisfy the following requirements:
    React Native使用NetInfo对当前系统网络的判断
    iOS自定义下拉列表
    [!] The version of CocoaPods used to generate the lockfile (1.4.0.beta.1) is higher than the version of the current executable (1.3.0.beta.1). Incompatibility issues may arise.
    iOS实现TextField光标居中
    iOS优秀第三方框架
  • 原文地址:https://www.cnblogs.com/cyleon/p/10342618.html
Copyright © 2020-2023  润新知