Linux——安装MySQL

1、安装mysql8.0.35

1.1、安装步骤

1.更新包列表,首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包:

powershell 复制代码
sudo apt update
sudo apt upgrade

2.安装MySQL服务器:运行以下命令来安装MySQL服务器:

powershell 复制代码
sudo apt install mysql-server

3.启动MySQL服务:安装完成后,MySQL服务器将自动启动。您可以运行以下命令来确保MySQL正在运行:

powershell 复制代码
sudo systemctl status mysql

4.验证MySQL安装,您可以运行以下命令来验证MySQL是否已成功安装并运行:

powershell 复制代码
sudo mysql -u root -p

5.设置root用户MySQL通过密码登录:

sql 复制代码
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';

1.2、创建数据库

创建数据库的时候指定字符集为utf8mb4:CREATE DATABASE nr CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2.1、设置远程登录

2.1、允许使用root账号远程连接

mysql的root用户默认只允许本机登录(localhost表示本地登录),所以我们需要将root用户设置为允许从任意主机登录,登录Mysql后,在Mysql中依次执行以下指令:

sql 复制代码
use mysql;
update user set host='%' where user='root' and host='localhost';

2. 2、Mysql 允许远程登录

powershell 复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

2. 3、重启MySQL服务

powershell 复制代码
sudo service mysql restart

2.4、解决Host is not allowed to connect to this MySQL server问题

2.4.1、解析报错原因

'不允许主机连接到此MySQL服务器' (意思是本地账号连接可以登录,但是远程登陆不行)

2.4.2、解决步骤

  1. 登录mysql:mysql -u root -p
  2. 切换到mysql数据库:use mysql
  3. 更新user表信息:update user set host = '%' where user = 'root';
  4. 刷新权限:FLUSH PRIVILEGES;

3、设置表名不区分大小写

3.1、设置lower_case_table_names=1

powershell 复制代码
[root@monsters ~]# cd /etc
[root@monsters etc]# vi my.cnf

修改my.cnf:

powershell 复制代码
lower_case_table_names=1

直接加,重新启动:

powershell 复制代码
systemctl restart mysqld

3.2、重启失败的解决方法

若启动失败,是因为mysql8要求必须在初始化的时候设置,所以需要重新进行初始化:

powershell 复制代码
[root@monsters etc]# cd /var/lib/mysql
[root@monsters mysql]# sudo rm -rf /var/lib/mysql/*
[root@monsters mysql]# mysqld --initialize-insecure --user mysql --datadir=/opt/data --lower-case-table-names=1

重新在my.cnf加上lower_case_table_names=1,重启服务:

powershell 复制代码
[root@monsters etc]# sudo systemctl status mysqld

查看日志,获得初始化后的密码:

powershell 复制代码
[root@monsters etc]# grep 'temporary password' /var/log/mysqld.log

初始登录mysql,查看密码规则,修改密码:

powershell 复制代码
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
mysql> set global validate_password.check_user_name = OFF;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

4、解决MySQL无法设置使用密码登录

删除下图中标红的user表中的那条信息:

相关推荐
MilesShi19 分钟前
从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
linux·运维·单片机
我爱云计算3 小时前
K8S详解(5万字详细教程)
linux·运维·云原生·容器·kubernetes
2301_794333916 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
Molesidy6 小时前
【UAV】基于PX4+Ubuntu24.04.3的无人机制作的开发环境搭建
ubuntu·无人机·px4·gazebo·uav
荣光波比7 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
半夏陌离7 小时前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
敬业小码哥8 小时前
记一次:mysql的json及json数组使用组合使用
数据库·mysql·json
练小杰9 小时前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库
绿箭柠檬茶9 小时前
Ubuntu 使用 Samba 共享文件夹
linux·运维·ubuntu
工藤新一¹10 小时前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间