服务器上搭建mysql数据库

服务器上 mysql 8 的安装

  • 由于我的是阿里云的服务器,系统是 CentOS,所以这里先更新下 yum sudo yum update

  • 执行 mysql 8 的安装

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-server
  • 启动 mysql 服务,并且设置为开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
  • 修改 root 的密码,初始化 mysql
sudo grep 'temporary password' /var/log/mysqld.log
sudo mysql_secure_installation
  • 登录 mysql,创建新用户,并且分配权限
mysql -u root -p

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 设置允许远程连接,这里是为了本地可以调用服务器上的数据库
sudo nano /etc/my.cnf
// 修改 bind-address
bind-address = 0.0.0.0
  • 这里我还做了额外的 mysql 服务配置,比如我的服务器是 4G 内存,我设置了 2.4G 的内存给 mysql 服务
# mysql占用的物理内存大小
innodb_buffer_pool_size = 2576980378

# 适当调整重做日志文件大小
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1

# 二进制日志过期时间 7天 (604800 seconds)
binlog_expire_logs_seconds = 604800

# 内存临时表的最大大小,超过这个大小的临时表会写入磁盘。
tmp_table_size = 128M
max_heap_table_size = 128M

# 连接查询 排序查询 时分配的缓冲区大小。
join_buffer_size = 16M
sort_buffer_size = 8M
read_rnd_buffer_size = 8M


# 设置 InnoDB 缓冲池实例的数量。多个缓冲池实例可以提高并发访问的性能。这里我设置成了两个,因为我分配的内存大于 2 G
innodb_buffer_pool_instances = 2