服务器上搭建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