Linux服务器部署MySQL数据库
- 网址:https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7....
- 上传到服务器
定义好安装的目录和数据存储的目录,如:
# 安装目录 /usr/local/mysql # 数据存储目录 /usr/local/mysql/data
创建mysql用户
groupadd mysql useradd -r -g mysql -s /bin/false mysql
修改目录权限
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
配置
/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范围 default-time-zone='+08:00' # 连接配置 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
开始安装mysql
./bin/mysqld --user=mysql --initialize
请记住随机密码,可以进入
/var/log/mysqld.log
查看
开启mysql服务
cd /gree/mysql-5.7.23 ./support-files/mysql.server start
登录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'@'%';
配置环境变量
# MYSQL_HOME export MYSQL_HOME=/usr/loca/mysql export PATH=$PATH:$MYSQL_HOME/bin
创建用户、分配权限
需求:给相应的人员分配较小的数据库权限,只允许他查询
# 新建账号
CREATE USER 'user1'@'%' IDENTIFIED BY 'user11';
# 分配权限
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 'greeonline01'@'%';
# 刷新数据库权限
FLUSH PRIVILEGES;
1、修改权限分类
- SELECT: 查询数据
- INSERT: 插入新数据
- UPDATE: 更新数据
- DELETE: 删除数据
注:赋予多个权限时,以逗号隔开
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。