麒麟V10 Linux高级服务器安装Mysql8.3.0
注意:这里我的Linux,MYSQL所有操作均使用的是 root 账号
文章目录
- 麒麟V10 Linux高级服务器安装Mysql8.3.0
- 一、安装准备
-
- 1、下载MYSQL
- 3、查看原来是否已经存在Mysql
- 2、上传/解压MySQL
- 3、初始化Mysql
- 4、配置环境变量
- 5、启动Mysql,配置为开机自启
- 6、配置root密码与远程登陆
一、安装准备
确认要下载的Mysql版本与适配的Linux架构 进入linux 查看系统架构,根据系统架构选择下载的Mysql版本 使用 uname -m 命令查看系统架构
[root@root database]# uname -m
x86_64
是 x86_64 架构(Intel/AMD 64 位) 就下载 Linux – Generic (glibc 2.28) (x86, 64-bit) 系列 如果是 aarch64 架构(ARM 64 位)编译的 就要下载 Linux – Generic (glibc 2.28) (ARM, 64-bit) 系列 不然的话会 架构不匹配 导致安装失败,或者无法执行二进制文件: 可执行文件格式错误
官网下载地址:https://dev.mysql.com/downloads/mysql/
1、下载MYSQL
这里我是要下载历史版本,所以点 Archives 选择MySQL版本、操作系统类型、操作系统的架构类型,我的是 x86_64 所以下载 mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz
3、查看原来是否已经存在Mysql
[root@root ~]# rpm -qa | grep mysql
python2-mysqlclient-1.3.12-8.ky10.x86_64
pcp-pmda-mysql-4.1.3-15.p01.ky10.x86_64
qt5-qtbase-mysql-5.11.1-20.p01.ky10.x86_64
进行卸载
[root@root ~]# rpm -e –nodeps python2-mysqlclient
[root@root ~]# rpm -e –nodeps pcp-pmda-mysql
[root@root ~]# rpm -e –nodeps qt5-qtbase-mysql
# 再次查看,已经没有了
[root@root ~]# rpm -qa | grep mysql
卸载后可能存在残留的MySQL组,可以继续使用, 也可以使用以下命令进行删除:
删除 mysql 用户:
sudo userdel mysql
删除 mysql 组:
sudo groupdel mysql
删除 MySQL 数据目录(如果存在):
sudo rm -rf /var/lib/mysql
删除 MySQL 配置文件(如果存在)
sudo rm -rf /etc/my.cnf /etc/mysql/
创建用户与组 groupadd mysql useradd -r -g mysql -s /bin/false mysql 如果已经存在组, mysql 用户不存在,可以直接创建 mysql 用户,并将其添加到现有的 mysql 组中:sudo useradd -r -g mysql -s /bin/false mysql
2、上传/解压MySQL
使用连接工具将压缩包上传至 Linux 的 /root/waves/database/ 文件夹下。 (上传路径看个人爱好选择)。
进入 /root/waves/database/ 使用命令进行解压,将解压后的资源放到 /usr/local/waves/database/mysql830 文件夹下
[root@root database]# tar -xf mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/waves/database/mysql830
在 /usr/local/waves/database/mysql830 创建 data 目录并赋予权限,赋予mysql830 权限
[root@root mysql830]# sudo mkdir data
[root@root mysql830]# chown mysql:mysql -R /usr/local/waves/database/mysql830/data/
[root@root mysql830]# chown mysql:mysql -R /usr/local/waves/database/mysql830/
3、初始化Mysql
这个时候 root 密码是为空的,后边会进行设置密码。
[root@root mysql-8.3.0-linux-glibc2.28-x86_64]# ./bin/mysqld –user=mysql –basedir=/usr/local/waves/database/mysql830 –datadir=/usr/local/waves/database/mysql830/data –initialize-insecure –user=mysql
创建 my.cnf 配置文件,进行编辑,写入以下内容: lower_case_table_names 配置Mysql对大小写是否敏感。 需要注意的是 lower_case_table_names一经配置是不可被更改的,要想更改值,必须重新初始化Mysql才行。 官方文档说这个参数只能在数据库初始化操作之前添。 如果数据库已经被初始化过,需要先删除数据目录并重新初始化。不重新初始化MySQL直接更改my.cnf配置的话,重启MySQL会导致启动报错,同时数据库不可被连接。
配置项根据需要进行配置,共有三种 值 可配置 0 为 linux 下的默认配置,表名区分大小写,因为Linux对大小写敏感。 1 为 windows 下的默认规则,表名存储在磁盘上面是小写的,但是比较的时候是不进行区分大小写的。 2 为 macos 下的默认规则,表名存储为建表时的大小写,但是比较的时候是使用小写进行比较的
sudo vim /etc/my.cnf
#填入:
[mysqld]
# 设置3306端口
port=3306
#bind-address = 0.0.0.0 表示 MySQL 监听所有网络接口。 配置远程连接会用到
bind-address = 0.0.0.0
# 为1时设置Mysql不区分大小写,默认区分大小写
lower_case_table_names=1
# 设置mysql的安装目录
basedir=/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/waves/database/mysql830/data
socket=/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64/mysql.sock
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
socket=/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64/mysql.sock
default-character-set=utf8mb4
4、配置环境变量
vim /etc/profile
# 在文件末尾进行追加 mysql 的安装目录
export PATH=$PATH:/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64/bin
# 刷新权限,使Mysql配置生效
source /etc/profile
5、启动Mysql,配置为开机自启
在 /etc/systemd/system/ 目录下创建一个新的服务文件 mysqld.service
sudo vi /etc/systemd/system/mysqld.service
添加以下内容(根据你的 MySQL 安装路径调整 ExecStart的路径就是:Mysql安装目录下的bin目录中找到mysqld 所处路径加上 /mysqld basedir :Mysql安装目录 datadir : data的目录 ):
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64/bin/mysqld –basedir=/usr/local/waves/database/mysql830/mysql-8.3.0-linux-glibc2.28-x86_64 –datadir=/usr/local/waves/database/mysql830/data
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存并退出: 按Esc键,然后输入**:wq**保存并退出。
重新加载 systemd 配置和启动 MySQL 服务、设置开机自启动、检查服务状态
# 重载systemd 配置
sudo systemctl daemon-reload
# 启动 MySQL 服务
sudo systemctl start mysqld
# 设置开机自启动
sudo systemctl enable mysqld
# 检查服务状态
sudo systemctl status mysqld
# 重启 MySQL 服务
sudo systemctl restart mysqld
6、配置root密码与远程登陆
1、使用 mysql -uroot -p 回车,密码框(这个时候密码还是空的,直接回车即可进入Mysql)。设置root账户密码 2、查询root 用户的主机部分,如果是localhost 需要改为 % ,表示允许从任何主机登录。 3、防火墙放行 3306端口,刷新防火墙策略,检查是否成功放行 4、#查看 root@% 用户具有远程登录的权限。如果没有 GRANT ALL PRIVILEGES,需要授予权限:
1、设置root账户密码,进行刷新。
[root@root etc]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \\g.
Your MySQL connection id is 8
Server version: 8.3.0 MySQL Community Server – GPL
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.
# 如果这里报错,是因为 root 默认连接主机是 localhost ,而我是所有主机都可连接,不需要所有主机连接改为localhost即可,需要的话要先进行第二步。
MySQL [(none)]> ALTER USER 'root'@'%' IDENTIFIED BY 'password';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
MySQL [(none)]> ALTER USER 'root'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.007 sec)
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
2、查询root 用户的主机部分,如果是localhost 需要改为 % ,表示允许从任何主机登录。
MySQL [(none)]> SELECT user, host FROM mysql.user;
+——————+———–+
| user | host |
+——————+———–+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+——————+———–+
# 更新 mysql.user 表 ,运行以下 SQL 语句,将 root 用户的主机部分改为 %:
UPDATE mysql.user SET host='%' WHERE user='root';
# 修改后,刷新权限使其生效:
FLUSH PRIVILEGES;
# 再次查询 mysql.user 表,确认修改是否生效
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.006 sec)
MySQL [(none)]> SELECT user, host FROM mysql.user;
+——————+———–+
| user | host |
+——————+———–+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+——————+———–+
4 rows in set (0.001 sec)
#3、防火墙放行 3306端口,刷新防火墙策略,检查是否成功放行
[root@root etc]# sudo firewall-cmd –zone=public –add-port=3306/tcp –permanent
success
[root@root etc]# sudo firewall-cmd –reload
success
[root@root etc]# sudo netstat -tuln | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp6 0 0 :::33060 :::* LISTEN
#4、查看 root@% 用户具有远程登录的权限。如果没有 GRANT ALL PRIVILEGES,需要授予权限:
MySQL [(none)]> SHOW GRANTS FOR 'root'@'%';
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
| Grants for root@% |
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION |
+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
1 row in set (0.006 sec)
# 进行授权
MySQL [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.020 sec)
# 刷新权限
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.007 sec)
到这里就配置完成啦! 打开Navicat进行连接测试。
评论前必须登录!
注册