mysql安装与配置实验报告

发布时间: 2023-11-21 11:54 阅读: 文章来源:1MUMB2447PS

实验报告——MySQL的安装

一、源码安装 MySQL

1、 系统环境:Centos7.3 x86_64

因为 centos7.2 默认安装了 mariadb-libs,为了避免发生端口冲突、程序冲突,所以先建议查看是否安装 mariadb,然后将其卸载掉。

· 查看是否安装了mariadb

#rpm -qa | grep mariadb

· 卸载 mariadb

rpm -e mariadb-libs --nodeps (--nodeps:忽略依赖关系,强制卸载)

2、安装依赖包(cmake、ncurses、bison、boost、gcc)

注: 相关依赖包的作用

· cmake:由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。

· ncurses:计算机语言,是提供字符终端处理库

· bison:Linux 下 C/C++语法分析器,是一个通用的解析器生成器,是属于 GNU 项目的一个语法分析器生成器。bison 把一个关于"向前查看 从左到右 最右"(LALR) 上下文无关文法的描述转化成可以分析该文法的 C 或 C++ 程序。它也可以为二义文法生成 "通用的 从左到右 最右" (GLR)语法分析器。

· Boost:boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。从 MySQL 5.7.5 开始 Boost 库是必需的,mysql 源码中用到了C++的 Boost 库,要求必须安装 boost1.59.0 或以上版本

· GCC: 是 Linux 下的 C 语言编译工具,mysql 源码编译完全由 C 和 C++编写,要求必须安装GCC。(一般都有安装,可通过"gcc -v"查看,如果系统上安装了gcc编译器,这条命令就会显示出当前安装的gcc编译器是哪个版本;如果提示命令找不到,则表明没有安装。没安装的话,可以从系统自带的光盘中安装一哈)

1)安装文件准备

下载 cmake、ncurses、bison、Boost、mysql源码包(请忽略我一会所使用的源码包版本,比较旧。如果对版本要求严格的,可以从下面的链接地址或自己找官网进行下载,版本众多,可以自由选择,)

2)安装CMAKE 及必要的软件

A.安装 cmake

B.安装 ncurses

C. 安装 bison

D.安装 bootst

3)创建 mysql 用户和用户组及目录

# groupadd -r mysql ---创建msyql 组

# useradd -r -g mysql -s /bin/false -M mysql ---创建msyql 用户并禁止登录 shell

#mkdir /usr/local/mysql---创建目录

#mkdir /usr/local/mysql/data---数据库目录

3、编译安装 mysql

解压 mysql 源码包、执行 cmake 命令进行编译前的配置、开始编译、编译安装。如下图:

上图中配置解释:

· -DCMAKE_INSTALL_PREFIX=/usr/local/mysql:MySQL安 装 的 根 目录

· -DMYSQL_DATADIR=/usr/local/mysql /data:MySQL 数据库文件存放目录

· -DSYSCONFDIR=/etc:MySQL 配置文件所在目录

· -DWITH_MYISAM_STORAGE_ENGINE=1:添加 MYISAM 引擎支持

· -DWITH_INNOBASE_STORAGE_ENGINE=1:添加 InnoDB 引擎支持

· -DWITH_ARCHIVE_STORAGE_ENGINE=1:添加 ARCHIVE 引擎支持

· -DMYSQL_UNIX_ADDR=/usr/local/mysql /mysql.sock:指定 mysql.sock 位置

· -DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区

· -DEXTRA_CHARSETS=all:使 MySQL 支持所有的扩展字符

· -DDEFAULT_CHARSET=utf8:设置MySQL 的默认字符集为utf8

· -DDEFAULT_COLLATION=utf8_general_ci:设置默认字符集校对规则

· -DWITH-SYSTEMD=1:可以使用 systemd 控制 mysql 服务

· -DWITH_BOOST=/usr/local/boost:指向 boost 库所在目录

4.安装后的其他调整

1)优化执行路径

2)设置数据库目录的权限

#chown -R mysql:mysql /usr/local/mysql ---更改属主,属组。

3)初始化数据库

注 1:MySQL 5.6 之前的版本执行下面初始化系统数据库

#/usr/local/mysql/bin/mysql_install_db--user=mysql --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

# 5.7 之后版本初始系统数据库脚本(图中使用此方式初始化)

#/usr/local/mysql/bin/mysqld--initialize-insecure--user=mysql--basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

注2:如果使用–initialize 参数初始化系统 数据库 之后,会生成 root 用户的一个临时密码, 如上图标记所示。

4)创建配置文件

# cd/usr/local/mysql/support-files---进入MySQL 安装目录支持文件目录

# cpmy-default.cnf /etc/my.cnf---复制模板为新的配置文件,

修改文件中配置选项,老的版本一般有这个文件,如果没有这个文件可以直接在/etc下编辑my.cnf文件。如下图所示,添加如下配置项

5)配置MySQL自动启动

5.登录MySQL数据库

#mysql -u root -p -----回车输入初始化时生成的随机密码

初始化生成的密码比较复杂,很难记忆,所以可以更改密码。如下图

至此MySQL数据库的安装就完成了。下面是我在做实验过程中的报错及解决方法。

二、记忆深刻

1.初始化的时候失败

解决方法:(/usr/local/mysql/data)data目录下有文件,删了即可

2.数据库启动失败

服务启动失败,查看错误日志文件

在mysqld.service,把默认的pid文件指定到了/var/run/mysqld/目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给mysql用户。如下图:

上面这种方法是临时的,因为/var/run下的目录关机就没了,最好采用下面修改文件的方法:修改/usr/lib/system/system/mysqld.service,修改内容如下:

#systemctl daemon-reload -----重载服务

再次启动mysql服务

3.忘记了初始化产生的随机密码

在配置文件/etc/my.cnf的mysqld下加skip-grant-tables跳过密码认证

重启服务就可以无密码登录了,无密码登陆后修改密码。如下图:

注:

1.mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

2.注释掉或删除配置文件/etc/my.cnf里的skip-grant-tables (不删除,密码不会生效)

最后重启服务,或加载配置文件就生效了

4.需要重新运行cmake配置

若要重新运行cmake配置,需要删除CMakeCache.txt文件。

#make clean

#rm -f CMakeCache.txt

5.加快编译速度的方法(我没用过,所以不知道是不是真的有效,这是偶然看到的,所以记了一下)

make -j $(grep processor /proc/cpuinfo | wc –l)

· -j 参数表示根据 CPU 核数指定编译时的线程数,可以加快编译速度。默认为 1 个线程编译。

bin/mysqld --initialize--user=mysql--basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

本文为个人实验文档,不求认同,不做讨论。

•••展开全文