前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL快速安装和初始化笔记

MySQL快速安装和初始化笔记

作者头像
sean.liu
发布2022-09-07 10:16:11
1.2K0
发布2022-09-07 10:16:11
举报
文章被收录于专栏:云计算技术笔记

Linux系统下快速安装MySQL,使用单机多实例的方式初始化实例,并启动实例。以及一些常用的配置等信息。

前言

这个部署流程较为简单,只是为了尽快启动个MySQL用作测试。比如用于开发或跑个测试什么的。 如果是用于线上生产,建议再做优化,特别是配置文件这里。

部署MySQL

安装

CentOS7需要安装yum源

CentOS7中MySQL数据库已从默认的程序列表中移除,替换成了MariaDB。所以需要去下载yum源。官方yum源链接

便捷安装命令
代码语言:javascript
复制
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

如果是fedora则不需要

安装MySQL
代码语言:javascript
复制
yum install community-mysql-server

配置MySQL的账号

MySQL不建议在root账号下运行,所以需要创建一个低权限的账号。

代码语言:javascript
复制
groupadd mysql
useradd -g mysql mysql

帮助手册

代码语言:javascript
复制
mysqld --verbose --help

初始化实例

如果直接通过systemd或者直接运行MySQL启动MySQL,那么数据库会被初始化到/var/。但默认的方式会让日志数据分的比较远。 单机多实例管理,通常会把日志数据放到一个指定的目录里,那需要将MySQL相关的参数做自定义。 通常会把写在配置文件里,从/etc/my.cnf复制出来修改。

准备操作

选择/data/my3306作为实例目录。

实例目录: /data/my3306 数据目录/data/my3306/data,用于保存数据。 日志目录/data/my3306/log,用于保存alert日志。 运行时文件/data/my3306/run,用于保存sock,pid等临时文件。 配置文件: /data/my3306/my.cnf

快速执行脚本
代码语言:javascript
复制
mkdir -p /data/my3306
mkdir -p /data/my3306/data
mkdir -p /data/my3306/log
mkdir -p /data/my3306/run
chown -R mysql:mysql /data/my3306
配置文件

这是对应的配置文件,将其保存到 /data/my3306/my.cnf即可。

代码语言:javascript
复制
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
user=mysql
datadir=/data/my3306/data/
socket=/data/my3306/run/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/data/my3306/log/mysqld.log
pid-file=/data/my3306/run/mysqld.pid

执行初始化

5.7后mysqld承担初始化动作,另外默认账号root的密码会被初始化写到日志里,要想偷懒的话用--initialize-insecure,这样密码默认为空。

不安全的初始化
代码语言:javascript
复制
mysqld  --defaults-file=/data/my3306/my.cnf --initialize-insecure
## 注意返回值,避免没初始化完成。
echo $?
标准初始化
代码语言:javascript
复制
mysqld  --defaults-file=/data/my3306/my.cnf --initialize

启动

配置文件已经写好了对应的地址,所以只要指向配置即可启动。

代码语言:javascript
复制
nohup mysqld --defaults-file=/data/my3306/my.cnf &

授权

登录

本地通过127.0.0.1免密登录。

代码语言:javascript
复制
 mysql -h127.0.0.1 --user=root
创建测试账号

创建一个无需密码的账号,并授予最高权限。

代码语言:javascript
复制
create user 'test'@'%' identified by '';
GRANT ALL ON *.* TO 'test'@'%'; # *.*

常见问题处理

未初始化完成导致启动失败
代码语言:javascript
复制
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

注意data文件夹,肯定没有mysql的文件夹。这说明初始化存在异常,没有初始化完成。所以需要注意初始化动作的返回值是否为0.

没有文件权限导致的启动时报错
代码语言:javascript
复制
[ERROR] InnoDB: Plugin initialization aborted with error Generic error

这种情况通常是data目录的权限问题。

代码语言:javascript
复制
chown -R mysql:mysql data
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月23日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 部署MySQL
    • 安装
      • CentOS7需要安装yum源
      • 安装MySQL
    • 配置MySQL的账号
      • 帮助手册
      • 初始化实例
        • 准备操作
          • 快速执行脚本
          • 配置文件
        • 执行初始化
          • 不安全的初始化
          • 标准初始化
          • 登录
          • 创建测试账号
          • 未初始化完成导致启动失败
          • 没有文件权限导致的启动时报错
      • 启动
      • 授权
      • 常见问题处理
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档