MySQL笔记(一)CentOS7安装MySQL8
目录
- 准备工作:卸载MariaDB、下载资源包、检查是否已安装MySQL;
- 安装:解压;
- 配置:创建用户组和用户、数据目录;
- 初始化MySQL:配置文件、初始化;
- 启动MySQL:启动服务、登录、修改密码、创建远程连接用户、退出和关闭;
一、准备
1.1 卸载MariaDB
说明
MariaDB是MySQL的一个分支,主要由开源社区维护。
- CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库;
- 如果直接安装MySQL,会和MariaDB的文件冲突;
所以,需要先卸载自带的MariaDB,再安装MySQL。
查看版本:
rpm -qa|grep mariadb
卸载:
rpm -e --nodeps mariadb文件名
如下:
[root@node3 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64
[root@node3 ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
[root@node3 ~]#
二、安装MySQL
2.1 下载资源包
注:将MySQL资源包放在/usr/local/
下
资源的两种下载方式:
- 在官网下载资源包,通过 Xftp上传到服务器(下载地址:https://dev.mysql.com/downloads/mysql/)。
- 通过 wget下载到服务器。
下面通过wget方式下载。
切换到/usr/local目录下,下载资源包:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
2.2 检查是否已安装MySQL
查看MySQL信息
rpm -qa|grep mysql
# 如果没有输出,说明当前系统没有安装MySQL
# 如果不是想要的版本,则卸载:rpm -e --nodeps mysql文件名
2.3 解压
# 解压
tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
# 重命名
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8
2.4 设置环境变量
[root@node3 local]# vim /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/mysql8/bin
[root@node3 local]# source /etc/profile
# 验证版本
[root@node1 etc]# mysql --version
mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
三、配置
1、创建用户组和用户
# 创建一个用户组:mysql
groupadd mysql
# 创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g mysql mysql
2、创建目录
# 创建目录
mkdir -p /data/mysql8_data/
# 授权
# 更改属主和数组
chown -R mysql:mysql /data/mysql8_data
# 更改模式
chmod -R 750 /data/mysql8_data/
四、初始化MySQL
4.1 配置参数
在/usr/local/etc/下,创建my.cnf配置文件,用于初始化MySQL数据库.。
直接在/usr/local/etc/
下用 vim编辑器,编辑后保存即可
- 进入Vim编辑器:
vim /usr/local/etc/my.cnf
; - 进入编辑模式:
i
,粘贴以下内容; - 退出编辑模式:
ESC
; - 保存:
:wq
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
# 服务端使用的字符集默认为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
4.2 初始化
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
参数(重要)
--defaults-file
:指定配置文件(要放在--initialize 前面)--user
: 指定用户--basedir
:指定安装目录--datadir
:指定初始化数据目录--intialize-insecure
:初始化无密码
五、启动MySQL
5.1 启动服务
# 启动服务
# 完整命令
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
# 添加PATH变量后的命令(省略bin目录的路径)
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
# 查看是否启动
[root@node1 etc]# ps -ef|grep mysql
root 1860 1565 0 1月21 pts/0 00:00:00 /bin/sh /usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf
mysql 2397 1860 0 1月21 pts/0 00:00:58 /usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --plugin-dir=/usr/local/mysql8/lib/plugin --user=mysql --log-error=/data/mysql8_data/mysql/mysql.log --open-files-limit=65535 --pid-file=/data/mysql8_data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
root 2532 1565 0 00:16 pts/0 00:00:00 grep --color=auto mysql
5.2 登录
# 无密码登录方式
mysql -u root --skip-password
# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
mysql -u root -p
password:随机密码
5.3 修改密码
MySQL初始化后的root用户、新创建的用户,都需要设置第一次密码。
首次修改
# 修改密码 mysql_native_password:本地密码插件,首次改密时建议使用
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;
非首次修改
# Linux 命令行
mysqladmin -u用户名 -p旧密码 password 新密码
#MySQL命令行
# 设置密码
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
# 刷新权限
FLUSH PRIVILEGES;
5.4 创建远程链接用户
选择mysql数据库
# 选择mysql数据库
USE mysql;
# 查看当前用户
SELECT user,host,plugin,authentication_string FROM user;
创建用户,任意远程访问
CREATE user 'root'@'%';
# 设置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 授权用户所有权限
GRANT ALL PRIVILEGES ON *.* TO "root"@"%";
# 刷新权限
FLUSH PRIVILEGES;
查看最终权限
mysql> SELECT user,host,plugin,authentication_string FROM user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user | host | plugin | authentication_string |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| root | % | mysql_native_password | *822A23996E3E80785401BCCE271747CCFDFE686F |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root | localhost | mysql_native_password | *822A23996E3E80785401BCCE271747CCFDFE686F |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
本篇内容是参考网络教程学习过程中的笔记
开发工作着,生活快乐着,留下总结,相互交流,共同进步
开发工作着,生活快乐着,留下总结,相互交流,共同进步