阿里云安装Mysql

阿里云安装Mysql

1、下载mysql包,并解压包

复制代码
    下载:mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar
    解压:tar -xf mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar
    备注:其余的2个tar.xz没得用,rm删除掉

2、继续解压文件

复制代码
    tar -Jxf mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz

3、拷贝到安装目录

复制代码
    mv ./mysql-8.0.28-linux-glibc2.17-x86_64-minimal /usr/local/mysql8

4、创建mysql组和用户

复制代码
    groupadd mysql useradd -r -g mysql mysql

5、创建mysql数据目录(根目录)

复制代码
    cd / && mkdir -p /data/mysql8_data/

6、赋予权限

复制代码
    chown mysql:mysql -R /data/mysql8_data
    chmod 750 /data/mysql8_data/ -R

7、加入路径

复制代码
    export PATH=$PATH:/usr/local/mysql8/bin

8、配置文件顺序:

复制代码
        1. /etc/my.cnf 
        2. 2./etc/mysql/my.cnf  
        3. 3./usr/local/mysql/etc/my.cnf  
        4. 4.~/.my.cnf
 创建my.cnf文件:
 vi /etc/my.cnf
powershell 复制代码
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
 
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 设置mysql的安装目录
basedir    = /usr/local/mysql8
# 设置mysql数据库的数据的存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
#设置mysql数据库的日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
 
##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
 
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
 
binlog_format=mixed
 
binlog_expire_logs_seconds =864000
 
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout

9、初始化mysql

复制代码
    cd  /usr/local/mysql8/bin
    ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize 

10、启动mysql(结尾加"&"为后台启动)

复制代码
    ./mysqld_safe --defaults-file=/etc/my.cnf &

11、查看启动log中生成mysql密码

复制代码
    cat /data/mysql8_data/mysql/mysql.log
    2022-03-22T11:05:18.173249Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: %lgAeFSY&9NC

12、修改新密码

复制代码
    #首次改密推荐使用本地密码插件with mysql_native_password
    ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '12345678';
    #刷新权限
    flush privileges; 

13、创建远程访问授权

复制代码
    use mysql;
    select user,host,plugin,authentication_string from user;
    CREATE user 'root'@'%'; #创建用户任意远程访问
    alter user 'root'@'%' identified with mysql_native_password by '12345678'; #修改密码
    grant all privileges on *.* to "root"@"%"; #给用户授权
    flush privileges; #刷新权限

14、添加mysql服务

复制代码
    #确保my.cnf在路径/etc/my.cnf 
    cd /usr/local/mysql8/
    cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    chkconfig --add mysqld 
    chkconfig --level 345 mysqld on
    启动:service mysqld start
    停止:service mysqld stop
    重启:service mysqld restart
    重载配置:service mysqld reload

15、(忽略)防火墙:开启3306端口,--permanent永久生效,没有此参数重启后失效。

复制代码
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
相关推荐
JavaPub-rodert1 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
爱吃火鸡面呀3 小时前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
知行产研3 小时前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
爱和冰阔落4 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql
Dxy12393102164 小时前
MySQL有哪些锁?InnoDB锁体系完整梳理博客
数据库·mysql
wear工程师5 小时前
MySQL 索引条件下推是什么?Using index condition 并不是覆盖索引
sql·mysql
方便面不加香菜6 小时前
MySQL 复合查询
数据库·mysql
花花鱼6 小时前
MySQL Illegal mix of collations 全解|字符集与排序规则冲突原理、分层排错、通用解决方案(适配5.7/8.0迁移)
数据库·mysql
2401_861678626 小时前
阿里云远程连接
阿里云·云计算
迪康coolmu6 小时前
企业文件外发防泄漏实践:从通道封堵到三层全链路管控
大数据·运维·网络·人工智能·安全·阿里云