在Ubuntu中安装配置MySql Server

1.安装MySql Server

在命令行控制台执行安装命令:

bash 复制代码
sudo apt install mysql-server

安装完成后,因为没有root用户的密码,所以,登录不了mysql的cli。另外,MySql 8以上,lower-case-table-names默认值0,且不支持直接修改配置文件的方式实现支持lower-case-table-names=1,需要重新初始化来设置root的密码与lower-case-table-names的值设置为1。

lower_case_table_names 是一个 MySQL 系统变量,它决定了如何存储和比较数据库和表名。这个变量可以设置为以下三个值之一:

  • 0:表名在存储和比较时区分大小写(默认值,Linux 系统通常使用)
  • 1:表名在存储和比较时不区分大小写(Windows 系统通常使用)
  • 2:表名在存储时区分大小写,但在比较时不区分(很少使用)

2.重新初始化

(1)重新初始化,必须停止mysql服务

bash 复制代码
sudo systemctl stop mysql

(2)清空mysql的数据目录中原来的文件前,必须授权给当前用户对此数据目录有操作权限

bash 复制代码
sudo chmod 755 /var/lib/mysql

(3)重新初始化,必须清空mysql的数据目录中原来的文件

bash 复制代码
sudo rm -rf /var/lib/mysql/*

(4)设置mysql配置文件内容

文件路径:/etc/mysql/my.cnf

bash 复制代码
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
lower_case_table_names=1
default-time_zone='+8:00'
max_connections=1000
max_connect_errors = 10000
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#skip-character-set-client-handshake
innodb_buffer_pool_size=512M

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysql/mysqld.pid

#!includedir /etc/mysql/conf.d/
#!includedir /etc/mysql/mysql.conf.d/

(5)重新初始化mysql

bash 复制代码
sudo mysqld --initialize --user=root --lower-case-table-names=1

初始化完成后系统会在控制台输出root用户的初始密码,记下root的初始密码,用于首次登录。

(6)将/var/lib/mysql目录下的所有文件设置为归属mysql用户

否则启动mysql服务时会报错

bash 复制代码
sudo chown mysql:mysql /var/lib/mysql -R

(7)启动mysql服务

bash 复制代码
sudo systemctl start mysql

3.验证

(1)用root用户登录

bash 复制代码
mysql -u root -p

密码使用重置时,系统输出的初始密码。

(2)修改root用户的密码

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

use mysql;

update user set Host = '%' where user = 'root';

FLUSH PRIVILEGES;

(3)查看lower-case-table-names变量的值

bash 复制代码
show variables like 'lower_case_table_names';
相关推荐
星源~5 分钟前
zephyr-Linux环境下搭建步骤
linux·mcu·嵌入式开发·zephyr
Huangjin007_7 分钟前
【Linux 系统篇(二十)】进程(八):进程创建、进程退出
linux·运维·服务器
吴声子夜歌19 分钟前
Shell编程——开发规范
linux·运维·shell
Shadow(⊙o⊙)22 分钟前
epoll三大接口到内核+正确认识应用层与内核的联系(6000字)
linux·服务器·网络
皓月盈江22 分钟前
Linux系统使用VSCode搭建GO开发环境
linux·vscode·ubuntu·golang·debian
CHHH_HHH32 分钟前
【Linux系统篇】进程间通信揭秘:从管道到共享内存
linux·服务器·c语言·开发语言·后端·ubuntu
.冰块.33 分钟前
华为云计算服务学习笔记|ECS + 镜像 IMS + 弹性伸缩 AS 完整踩坑实录
linux·华为云·ims·as·ecs·弹性云服务器·计算类云服务
一技安身10 小时前
【信创】银河麒麟V10、统信UOS解压7Z文件
linux·运维·服务器
奔跑的架构师11 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
迷途呀11 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化