下载并解压MySQL包:
sudo tar -xvf mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz
sudo mv mysql-8.0.39-linux-glibc2.28-x86_64 /usr/local/mysql
创建MySQL用户和组:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
设置目录权限和初始化数据库:
cd /usr/local/mysql
sudo mkdir data etc conf
sudo touch conf/my.cnf
sudo chown -R mysql:mysql .
sudo mkdir /var/log/mysql
sudo chown -R mysql:mysql /var/log/mysql
sudo bin/mysqld --initialize --user=mysql
sudo bin/mysqld_safe --user=mysql &
sudo bin/mysql_secure_installation
配置环境变量:
export PATH=/usr/local/mysql/bin:$PATH
MySQL 启动和管理
启动MySQL服务:
sudo bin/mysqld_safe --user=mysql &
使用root用户登录MySQL:
mysql -u root -p
使用Supervisor管理MySQL
配置Supervisor:
创建并编辑/etc/supervisor/conf.d/mysql.conf文件:
nano /etc/supervisor/conf.d/mysql.conf
配置内容:
[program:mysql]
directory=/usr/local/mysql
command=/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/conf/my.cnf
autostart=true
autorestart=true
startretries=3
user=mysql
stdout_logfile=/var/log/mysql.log
stderr_logfile=/var/log/mysql.log
MySQL 配置文件 (my.cnf)
路径:/usr/local/mysql/conf/my.cnf
[mysqld]
port = 3306
bind-address = 0.0.0.0
skip-external-locking
thread_cache_size = 20
key_buffer_size = 16M
max_allowed_packet = 64M
thread_stack = 256K
thread_cache_size = 8
expire_logs_days = 7
max_connections = 100
table_open_cache = 1000
back_log = 150
innodb_buffer_pool_size = 256M
innodb_log_file_size = 1G
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
plugin-dir = /usr/local/mysql/lib/plugin
pid-file = /tmp/mysqld.pid
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
配置允许外网登录
进入MySQL:
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
验证设置:
SELECT Host, User FROM mysql.user WHERE User = 'root';