以 MySQL 5.0.45 為例,通用於 5.x/8.x 源碼安裝,關鍵在 configure 參數與 my.cnf 微調。
yum -y install gcc gcc-c++ ncurses-devel cmake bison perl
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
tar -zxvf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure \
--prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-collation=utf8_general_ci \
--with-extra-charsets=latin1 \
--with-plugins=innobase,myisam,partition \
--enable-thread-safe-client
make && make install
MySQL 5.7+ 改用 cmake . -DCMAKE_INSTALL_PREFIX=... -DDEFAULT_CHARSET=utf8mb4 ...。
cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 註釋 log-bin=mysql-bin(非主庫不需 binlog)
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql &
# 加入開機自啟
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local
chmod +x /etc/rc.local
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-name-resolve
max_connections=1000
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=2
| 操作 | 命令 |
|---|---|
| 登入 | mysql -uroot -p |
| 改密 | mysqladmin -uroot -p'old' password 'new' |
| 備份全庫 | mysqldump -uroot -p --all-databases > /backup/all.sql |
| 備份單庫 | mysqldump -uroot -p db_name > /backup/db.sql |
| 恢復 | mysql -uroot -p db_name < /backup/db.sql |
mysql -uroot -p -e "SHOW VARIABLES LIKE 'version';"
mysql -uroot -p -e "SHOW ENGINES;"