文章目錄 安裝依賴包 新建用戶 解壓 初始化 配置文件 啟動服務 登錄MySQL 修改密碼 停止數據庫
安裝依賴包
yum -y install libaio perl perl-devel libncurses* autoconf numactl
新建用戶
useradd mysql
解壓
tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
初始化
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data3306
配置文件
touch /usr/local/mysql/data3306/error.log
chown -R mysql:mysql /usr/local/mysql/data3306/cat > /usr/local/mysql/data3306/my.cnf <<"EOF"
[mysqld]
# ===== 基礎配置 =====
basedir = /usr/local/mysql # MySQL安裝目錄
datadir = /usr/local/mysql/data3306 # 數據目錄
socket = /usr/local/mysql/data3306/mysql.sock
pid-file = /usr/local/mysql/data3306/mysqld.pid
user = mysql
port = 3306
bind-address = 0.0.0.0 # 遠程訪問需改為 0.0.0.0(注意安全)
skip-name-resolve # 禁用DNS解析,提升連接速度# ===== 字符集配置 =====
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci# ===== 日志配置 =====
log_error = /usr/local/mysql/data3306/error.log # 確保logs目錄存在
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/data3306/slow.log # 慢查詢日志
long_query_time = 2
log_queries_not_using_indexes = 1# ===== InnoDB 引擎優化 =====
default-storage-engine = InnoDB
innodb_buffer_pool_size = 1G # 根據物理內存調整(建議70-80%)
innodb_log_file_size = 512M # 需重啟生效
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 1 # 1=嚴格ACID,2=性能優先
innodb_file_per_table = 1 # 獨立表空間# ===== 連接與線程 =====
max_connections = 500 # 最大連接數
thread_cache_size = 128
wait_timeout = 300 # 非交互連接超時(秒)
interactive_timeout = 300# ===== 安全與權限 =====
symbolic-links = 0 # 禁用符號鏈接(安全加固)
local_infile = 0 # 禁用本地文件加載# ===== 二進制日志(主從復制時啟用)=====
server-id = 3306 # 主從唯一ID
log_bin = /usr/local/mysql/data3306/mysql-bin.log
expire_logs_days = 30 # 自動清理binlog
binlog_format = row# ===== 其他優化 =====
key_buffer_size = 64M
tmp_table_size = 64M
max_heap_table_size = 64M
query_cache_type = 0 # 關閉查詢緩存
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe]
log-error = /usr/local/mysql/data3306/error.log # 與[mysqld]中一致
socket = /usr/local/mysql/data3306/mysql.sock[client]
socket = /usr/local/mysql/data3306/mysql.sock # 客戶端連接socket路徑
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4
EOF
啟動服務
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/data3306/my.cnf &
登錄MySQL
mysql -u root -P 3306 -S /usr/local/mysql/data3306/mysql.sock
修改密碼
alter user root@localhost identified by 'root';
create user root@'%' identified by 'root';
grant all on *.* to root@'localhost';
flush privileges;
停止數據庫
mysqladmin -u root shutdown -p -S /usr/local/mysql/data3306/mysql.sock