MariaDB是MySQL 的一个分支,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
- rpm -qa|grep mariadb
-
- rpm -e --nodeps 文件名
/usr/local/ 目录执行:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
- rpm -qa|grep mysql
-
- //说明当前系统没有安装 MySQL,开始安装。如果有输出,则卸载。
-
- # 停止服务
- systemctl stop mysqld
-
- # 卸载
- rpm -e --nodeps mysql文件名
- # .tar.gz 后缀
- tar -zxvf 文件名
-
- # .tar.xz 后缀
- tar -Jxvf 文件名
解压完成后/usr/local/ 下会生成 MySQL 文件夹

mv 原文件夹名 mysql8
临时生效:连接会话关闭后失效,通常用于测试环境
export PATH=$PATH:/usr/local/mysql8/bin
查看版本
mysql --version
![]()
确认已经安装成功后删除压缩包
rm -rf 压缩包名
进入 /usr/local
创建用户组:
groupadd创建用户:
useradd(-r创建系统用户,-g指定用户组)
- groupadd mysql
- useradd -r -g mysql mysql
mkdir -p /data/mysql8_data
- # 更改属主和数组
- chown -R mysql:mysql /data/mysql8_data
-
- # 更改模式
- chmod -R 750 /data/mysql8_data
在
/usr/local/etc/下创建my.cnf配置文件使用vim命令打开这个文件
按 i 进入编辑模式。编辑完后 :wq 保存退出
vim my.cnf
配置内容:
- [mysql]
- # 默认字符集
- default-character-set=utf8mb4
- [client]
- port = 3306
- socket = /tmp/mysql.sock
- [mysqld]
- port = 3306
- server-id = 3306
- user = mysql
- socket = /tmp/mysql.sock
- # 安装目录
- basedir = /usr/local/mysql8
- # 数据存放目录
- 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
- # 日志及进程数据的存放目录
- log-error =/data/mysql8_data/mysql/mysql.log
- pid-file =/data/mysql8_data/mysql/mysql.pid
- # 服务端字符集
- 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
需要进入
/usr/local/mysql/bin,若添加了 PATH 变量可忽略。
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
- # 完整命令
- /usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
- # 若添加了PATH变量,可省略如下
- mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
查看是否启动:
ps -ef|grep mysql
- //无密码:若以 --initialize-insecure 初始化,首次登录时跳过密码。
- mysql -u root --skip-password
- //有密码
- mysql -u root -p
- # 修改密码
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
-
- # 刷新权限
- FLUSH PRIVILEGES;
平时修改密码:
- mysqladmin -u用户名 -p旧密码 password 新密码
-
- 或者
-
- # 设置密码
- SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
-
- # 刷新权限
- FLUSH PRIVILEGES;
- quit;
- exit;
systemctl stop firewalld