Linux服务器部署MySQL数据库

Linux服务器部署MySQL数据库

  1. 网址:https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

  2. 上传到服务器

  3. 定义好安装的目录和数据存储的目录,如:

    # 安装目录
    /usr/local/mysql
    
    # 数据存储目录
    /usr/local/mysql/data
    
  4. 创建mysql用户

    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    
  5. 修改目录权限

    chown -R mysql:mysql ./
    
    touch /var/log/mysqld.log
    chown mysql:mysql /var/log/mysqld.log
    chmod 640 /var/log/mysqld.log
    
    touch /var/log/mysql-slow.log
    chown mysql:mysql /var/log/mysql-slow.log
    chmod 640 /var/log/mysql-slow.log
    
  6. 配置/etc/my.cnf

    [mysqld]
    # 基础配置
    port = 3306
    user = mysql
    datadir = /usr/local/mysql/data
    basedir = /usr/local/mysql
    socket = /usr/local/mysql/mysql.sock
    bind-address = 0.0.0.0            # 确保防火墙规则限制访问IP范围
    
    # 连接配置
    max_connections = 300             # 根据业务负载调整(监控Threads_connected)
    max_connect_errors = 100          # 防止暴力破解(5.7默认100,可适当降低)
    thread_cache_size = 32            # 建议为 max_connections 的10%左右
    back_log = 100                    # 短连接高并发时调整连接队列
    
    # 字符集与表名大小写
    character-set-server = utf8mb4    # 5.7支持完整Unicode
    collation-server = utf8mb4_unicode_ci
    lower_case_table_names = 1        # 初始化后勿随意修改
    
    # InnoDB核心优化
    default-storage-engine = InnoDB
    innodb_buffer_pool_size = 4G      # 物理内存的70-80%(需预留系统内存)
    innodb_buffer_pool_instances = 4  # 多实例减少锁竞争(建议每1GB配1个实例)
    innodb_log_file_size = 2G         # 增大日志文件(需先备份后删除旧文件再重启)
    innodb_flush_log_at_trx_commit = 1 # 数据安全优先(1=每次提交刷盘)
    innodb_file_per_table = ON        # 独立表空间便于管理
    innodb_flush_method = O_DIRECT    # 避免双重缓冲(与RAID/SSD兼容)
    
    # MyISAM配置(如有需要)
    key_buffer_size = 32M             # 非MyISAM引擎可调低
    
    # 查询优化
    query_cache_type = 0              # 5.7建议关闭查询缓存
    query_cache_size = 0              # 彻底禁用
    table_open_cache = 2048           # 避免频繁打开表(监控Opened_tables)
    tmp_table_size = 64M              # 内存临时表上限
    max_heap_table_size = 64M
    performance_schema = ON           # 开启性能监控
    
    # 日志配置
    log-error = /var/log/mysqld.log
    slow_query_log = 1                # 开启慢查询日志
    slow_query_log_file = /var/log/mysql-slow.log
    long_query_time = 2               # 记录执行超过2秒的查询
    log_queries_not_using_indexes = 1 # 记录无索引查询
    log_throttle_queries_not_using_indexes = 100  # 5.7+特性:限制无索引日志频率
    
    
    # 二进制日志(主从复制需启用)
    # server-id = 1
    # log_bin = /var/log/mysql/mysql-bin.log
    # binlog_format = ROW             # 推荐ROW格式保证数据一致性
    # expire_logs_days = 7
    # binlog_row_image = minimal      # 减少二进制日志体积
    
    [mysqld_safe]
    log-error = /var/log/mysqld.log
    pid-file = /var/run/mysqld/mysqld.pid
    
    [client]
    socket = /usr/local/mysql/mysql.sock
    default-character-set = utf8mb4
    
  7. 开始安装mysql

    ./bin/mysqld --user=mysql  --initialize
    
  8. 请记住随机密码,可以进入/var/log/mysqld.log查看

    在这里插入图片描述

  9. 开启mysql服务

    cd /gree/mysql-5.7.23
    ./support-files/mysql.server start
    
  10. 登录mysql

    cd /gree/mysql-5.7.23
    ./bin/mysql -u root -p
    

    此时,先使用上述随机密码登录进去;然后修改密码,再创建一个账号即可。

    # 修改密码
    alter user 'root'@'localhost' identified by 'song1111';
    
    # 新建账号
    CREATE USER 'xiaosong'@'%' IDENTIFIED BY 'xiao1111';
    # 赋予权限
    GRANT ALL PRIVILEGES ON *.* TO 'xiaosong'@'%';
    
    # 刷新数据库权限
    FLUSH PRIVILEGES;
    
    # 删除账号
    DROP USER 'greeuser'@'%';
    
  11. 配置环境变量

    # MYSQL_HOME
    export MYSQL_HOME=/usr/loca/mysql
    export PATH=$PATH:$MYSQL_HOME/bin
    

创建用户、分配权限

需求:给相应的人员分配较小的数据库权限,只允许他查询

# 新建账号
CREATE USER 'user1'@'%' IDENTIFIED BY 'user1';

# 分配权限
GRANT SELECT ON gc_cloud.gc_user TO 'user1'@'%';
GRANT SELECT ON gc_cloud.gc_role TO 'user1'@'%';
GRANT SELECT ON gc_cloud.gc_menu TO 'user1'@'%';
GRANT SELECT ON gc_cloud.gc_org TO 'user1'@'%';
GRANT SELECT ON gc_cloud.gc_user_role TO 'user1'@'%';
GRANT SELECT ON gc_cloud.gc_role_menu TO 'user1'@'%';

# 撤销某个表的 SELECT 权限
REVOKE SELECT ON gc_cloud.gc_role_menu FROM 'user1'@'%';

# 刷新数据库权限
FLUSH PRIVILEGES;

1、修改权限分类

  • SELECT: 查询数据
  • INSERT: 插入新数据
  • UPDATE: 更新数据
  • DELETE: 删除数据

注:赋予多个权限时,以逗号隔开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值