2.MySQL安装配置

152 阅读6分钟

一、MySql安装

MySQL 推荐使用 RPM 包进行 Linux 平台下的安装,因为 RPM 包的安装和卸载都很方便,通过简单的命令就可以实现。本节主要介绍 Linux 下如何使用 RPM 包安装和配置 MySQL。

本节的安装环境为 CentOS 6.5,选用 el6 的安装包。读者应根据自己的系统来选择相对应的安装包,例如:CentOS 7 应该选用 el7 安装包。如果安装包对应的系统版本不正确,安装时会出现有关 glibc 的依赖错误。

下面通过 RPM 包进行安装,具体操作步骤如下:

步骤 1):进入官方下载页面(dev.mysql.com/downloads/m…)选择要下载的包(可直接点击链接进行下载)。

mysql-community-common-5.7.29-1.el6.x86_64.rpm

mysql-community-libs-5.7.29-1.el6.x86_64.rpm

mysql-community-client-5.7.29-1.el6.x86_64.rpm

mysql-community-server-5.7.29-1.el6.x86_64.rpm

步骤 2):下载完成后,切换到 root 用户。按照依赖关系依次安装 rpm 包,依赖关系依次为 common→libs→client→server。使用命令rpm -ivh {-file-name}进行安装操作。

rpm -ivh mysql-community-common-5.7.29-1.el6.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.29-1.el6.x86_64.rpm

rpm -ivh mysql-community-client-5.7.29-1.el6.x86_64.rpm

rpm -ivh mysql-community-server-5.7.29-1.el6.x86_64.rpm

ivh 中,i-install 参数表示安装后面的一个或多个 RPM 软件包;v-verbose 参数表示安装过程中显示详细的信息;h-hash 参数表示使用“#”来显示安装进度。

在 Linux 操作系统下安装 MySQL 时,一定要注意权限问题。安装 RPM 软件包时,需要使用 root 权限,否则会提示权限不够。且安装完成后,也需要使用 root 权限启动和关闭 MySQL 服务。

步骤 3):通过以下命令可以启动 MySQL 数据库,但是必须使用 root 权限。

service mysql start

提示:从 MySQL 5.0 开始,MySQL 的服务名改为 mysql,而不是 4.* 的 mysqld。

MySQL 服务的操作命令是:

service mysql start | stop | restart | status

  • start:启动 MySQL 服务

  • stop:停止 MySQL 服务

  • restart:重启 MySQL 服务

  • status:查看 MySQL 服务状态

步骤 4):服务启动后,查找 root 初始随机密码(如果没有初始密码,直接输入用户名 root 登录即可)

cat /var/log/mysqld.log | grep 'temporary password is generated'

步骤 5):安装成功后,使用以下命令登录 MySQL。

mysql -uroot -p

如果看到以下欢迎信息,说明登录成功,接下来就可以对 MySQL 数据库进行操作了。

[root@localhost ~]# mysql -uroot -p

Enter password: ****

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

以上说明性语句介绍如下:

  • Your MySQL connection id is 1:id 表示 MySQL 数据库的连接次数,这里为 1,说明是首次登录。

  • Server version: 5. 7.29-log MySQL Community Server(GPL):Server version 后面说明数据库的版本,这个版本为 5.7.29。Community 表示该版本是社区版。

  • Type 'help;' or '\h' for help:表示输入”help;“或者”\h“可以看到帮助信息。

提示:当窗口中出现如上图所示的说明信息,命令提示符变为“mysql>”时,表明已经成功登录 MySQL 服务器,可以开始对数据库进行操作了。  

步骤 6):可使用以下命令修改密码

set password='testroot';

使用 RPM 包安装时,系统不会提示各种文件安装在哪个文件夹下。下面介绍每个主要的文件在什么目录下,MySQL 服务器目录以及子目录如下表所示:

Linux平台MySQL的安装目录

文件夹    文件夹内容

/usr/bin    客户端和脚本(mysqladmin、mysqldump 等命令)

/usr/sbin   mysqld 服务器

/var/lib/mysql    日志文件、socket 文件和数据库

/usr/share/info    信息格式的手册

/usr/share/man    UNIX 帮助页

/usr/include/mysql    头文件

/usr/lib/mysql    库

/usr/share/mysql    错误消息、字符集、安装文件和配置文件等

/etc/rc.d/init.d/    启动脚本文件的 mysql 目录,可以用来启动和停止 MySQL 服务

步骤 7):配置 MySQL 服务,将 /usr/share/mysql/ 或 /usr/share/ 文件夹下的某一个后缀名为 cnf 的文件拷贝到 /etc/ 文件夹下,并且改名为 my.cnf。使用 vi 编辑器来编辑 my.cnf(我们在《my.cnf配置文件详解》一节介绍了 my.cnf 配置文件中各参数的具体意义)。命令如下:

cp /usr/share/mysql/my-large.cnf /etc/my.cnf

vi /etc/my.cnf

第一行命令可以完成复制和改名的工作,第二行命令可以编辑 my.cnf。

注意:使用 vi 进入 my.cnf 文件后,按 i 或 a 键进行编辑。按 Esc 键就可以退出编辑状态,转为进入命令状态。如果要保存修改的数据,输入:w即可,如果不希望保存而直接退出,输入:q!即可。

编辑并保存 my.cnf 文件后,必须重新启动 MySQL 服务,这样 my.cnf 中的配置才会起作用

二、MySQL配置

下面介绍my.cnf中参数的意义

[client]
port=3306
socket=/var/run/mysql/mysql.sock
[mysqldump]
quick
max_allowed_packet = 16M

以上参数会被 MySQL 客户端应用读取,参数说明如下:

port:MySQL 客户端连接服务器端时使用的端口号,默认为 3306

socket:套接字文件所在目录

quick:支持较大的数据库转储,导出非常巨大的表时需要此项 。

max_allowed_packet:服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要),每个连接独立的大小,大小动态增加。

注意:只有 MySQL 附带的客户端应用程序保证可以读取这段内容。如果想要自己的 MySQL 应用程序获取这些值,需要在 MySQL 客户端库初始化的时候指定这些选项。

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /mydata/mysql/data
port=3306
server-id = 1
socket=/var/run/mysql/mysql.sock

user:mysqld 程序在启动后将在给定 UNIX/Linux 账户下执行。mysqld 必须从 root 账户启动才能在启动后切换到另一个账户下执行。mysqld_safe 脚本将默认使用 user=mysql 选项来启动 mysqld 程序。

basedir:指定 MySQL 安装的绝对路径;

datadir:指定 MySQL 数据存放的绝对路径;

port:服务端口号,默认为 3306

server-id:MySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一。

socket:socket 文件所在目录

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
lower_case_table_names = 1
key_buffer_size=16M
max_allowed_packet=8M
no-auto-rehash
sql_mode=TRADITIONAL

character-set-server:数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用 4 个字节)

collation-server:数据库字符集对应一些排序等规则,注意要和 character-set-server 对应

init_connect:设置 client 连接 mysql 时的字符集,防止乱码

lower_case_table_names:是否对 sql 语句大小写敏感,1 表示不敏感

key_buffer_size:用于指定索引缓冲区的大小

max_allowed_packet:设置一次消息传输的最大值

no-auto-rehash:仅仅允许使用键值的 UPDATES 和 DELETES

sql_mode:表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度