MySQL笔记(一)CentOS7安装MySQL8

目录

  1. 准备工作:卸载MariaDB、下载资源包、检查是否已安装MySQL;
  2. 安装:解压;
  3. 配置:创建用户组和用户、数据目录;
  4. 初始化MySQL:配置文件、初始化;
  5. 启动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/

资源的两种下载方式

  1. 官网下载资源包,通过 Xftp上传到服务器(下载地址https://dev.mysql.com/downloads/mysql/)。
  2. 通过 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)

posted @ 2022-01-24 16:48  攻城狮~2022  阅读(154)  评论(0编辑  收藏  举报
所有内容都是自己使用过程的总结,如有不严谨或者不正确的地方,麻烦大家留言指出,一起研讨。