国内最好的网站建设公司,电子商务网站建设与管理实验总结,建设网站分析报告,长沙网络公司大全MySQL 一、MySQL的安装1、RPM2、二进制3、源码 二、源码安装方式三、安装过程1、上传源码包2、解压当前文件并安装更新依赖3、对MySQL进行编译安装 四、其他步骤 一、MySQL的安装
首先这里我来介绍下MySQL的几种安装方式#xff1a; 一共三种#xff0c;RPM安装包、二进制包… MySQL 一、MySQL的安装1、RPM2、二进制3、源码 二、源码安装方式三、安装过程1、上传源码包2、解压当前文件并安装更新依赖3、对MySQL进行编译安装 四、其他步骤 一、MySQL的安装
首先这里我来介绍下MySQL的几种安装方式 一共三种RPM安装包、二进制包安装以及源码安装 当然不同的安装方式也有优缺点下面分别介绍下
1、RPM
优点 安装简单适合初学者学习使用 缺点 需要单独下载客户端和服务器安装路径不灵活默认路径不能修改一台服务器只能安装一个版本的MySQL软件。 文件布局
/usr/bin (客户端程序和脚本)
/usr/sbin (mysqld服务器)
/var/lib/mysql (日志文件和数据库)
/usr/share/man (Linux 文档页)
/usr/include/mysql (包含(头)文件)
/usr/lib/mysql (库文件)
/usr/share/mysql (错误信息和字符集文件)2、二进制
优点 安装简单灵活性好单台服务器可以安装多个版本的 MySQL 软件。 缺点 已经经过编译性能不如源码编译得好不能灵活定制编译参数。 文件布局
bin (客户端程序、mysqld服务器和实用程序)
docs (文档)
man (Linux 文档页)
include (包含(头)文件)
lib (库文件)
share (错误消息和字典、安装数据库的SQL文件)
support-files (其他支持文件)3、源码
优点 与平台无关可按需定制编译最灵活性能最好单台服务器可以安装多个版本的 MySQL 软件。 缺点 安装过程较复杂编译时间长 文件布局
bin (客户端程序、mysqld服务器和实用程序)
docs (文档)
man (Linux 文档页)
include (包含(头)文件)
lib (库文件)
share (错误消息和字典、安装数据库的SQL文件)
support-files (其他支持文件)这里如果想要使用RPM或者二进制安装方式可以参考如下链接文章https://blog.csdn.net/weixin_63172698/article/details/132559298?spm1001.2014.3001.5501 二进制与源码的本质安装区别在于源码安装多了源代码程序编译参数配置、编译和安装二进制的过程然而最耗时的就是这三步下面我们来介绍源码安装方式。
二、源码安装方式
首先咱们介绍下源码安装方式与其他两种安装方式的区别即为什么要使用源码安装方式 按需定制编译最灵活性能最好这三点是最重要的原因之一以及可以安装到自己想要安装的目录、并且支持单台服务器安装多个版本的MySQL。 就比如官网直接下载下来的二进制安装包是按照一般情况下配置好了编译的默认参数有些默认编译配置可能并不是想要的这时就要在编译阶段按需自定义编译参数制定符合自己需求的二进制MySQL安装包如只编译支持utf8mb4编码。 对于安装方式的选择 这里不想安装最简单却不够灵活的RPM包又不想暗黄复杂费时的源码包的情况下建议选择二进制安装。 当然对数据库性能要求高同时能够灵活地定制编码参数选项地情况建议选择源码安装。
三、安装过程
首先我介绍下我目前演示地安装环境 这里建议硬盘40G以上运存4G具体看自己电脑情况而定20G大概率不够用。 首先将Mysql对应版本的源码包下载下来 网站地址https://downloads.mysql.com/archives/community/ 这里建议使用迅雷进行下载安装。
1、上传源码包
这里我使用的是termius远程连接工具当然这里也可以使用其他的比如xshell、moba等等这里就不一一介绍了主要是为了通过xftp将本机与虚拟机进行连接然后实现文件的传输。 这里为termius上传文件过程 首先更改路径找到自己的包 找到要进行文件传输的虚拟机进行建立连接 这里即可看到已经成功建立了连接。 这里等待下面进度条完成。 这里可以看到文件传输完毕。 当然使用别的远程连接工具进行文件传输的原理是一样的同样是先使用xftp建立连接这里就不具体细讲了。
2、解压当前文件并安装更新依赖 这里我们就可以看到已经上传好的文件。 接着我们进行解压文件
[rootlocalhost src]# tar -zxvf mysql-boost-8.0.18.tar.gz这里可以看到解压之后文件特别多 接下来在进行编译之前我们首先下载它的依赖
[rootlocalhost ~]# yum install -y cmake3 git gcc-c ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64由于编译MySQL时对gcc的版本要求是5.3以上所以我们需要先升级一下gcc的版本因为yum安装目前最新版本只到4.8.5。 升级gcc版本的方式主要有两种一种是下载源码包进行编译安装一种是使用yum安装devtoolset包目前devtoolset包里的gcc版本为5.3.1。 而源码安装的方式比较灵活可以选择任意版本但非常耗时。这里两种方式都会介绍可以自行视情况选择。这里我们即可看到 这里使用源码进行安装gcc新版 这里直接自带了gcc的9.2.0的源码包所以直接用如果没有自带则自行进行下载
wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz如果自带了直接进行解压即可
[rootlocalhost /usr/local/src]# tar -xzvf gcc-9.1.0.tar.gz这里即可看到源码解压完毕 下一步我们进入解压后的目录运行download_prerequisites脚本该脚本会自动下载编译时所需要的依赖文件和库
[rootlocalhost /usr/local/src]# cd gcc-9.2.0
[rootlocalhost /usr/local/src/gcc-9.2.0]# ./contrib/download_prerequisites这里即可看到执行完毕。 接下来我们建立输出目录将所有的中间文件都放到该目录下
[rootlocalhost /usr/local/src/gcc-9.2.0]# mkdir gcc-build-9.2.0下面我们进入新建的目录并完成编译配置
[rootlocalhost /usr/local/src/gcc-9.2.0]# cd gcc-build-9.2.0
[rootlocalhost /usr/local/src/gcc-9.2.0/gcc-build-9.2.0]# ../configure -enable-checkingrelease -enable-languagesc,c -disable-multilib参数说明
–enable-languages让gcc支持哪些语言–disable-multilib不生成编译为其他平台可执行代码的交叉编译器–disable-checking生成的编译器在编译过程中不做额外检查也可以使用–enable-checkingxxx来增加一些检查
下面进行接着就可以进行编译安装了
[rootlocalhost /usr/local/src/gcc-9.2.0/gcc-build-9.2.0]# make make install这一步耗时会比较久大概1-2个小时······ 倒数第二步创建软件链接覆盖/usr/bin下的gcc相关命令因为编译MySQL时默认会去/usr/bin目录下找gcc相关的命令
[rootlocalhost ~]# ln -sf /usr/local/bin/* /usr/bin/最后验证一下gcc版本是否为9.2.0如下代表安装成功
[rootlocalhost ~]# gcc -v
Using built-in specs.
COLLECT_GCCgcc
COLLECT_LTO_WRAPPER/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checkingrelease -enable-languagesc,c -disable-multilib
Thread model: posix
gcc version 9.2.0 (GCC)
[rootlocalhost ~]#到这一步其实mysql具体安装配置还没开始······
3、对MySQL进行编译安装
1、进入解压后的目录参照如下命令步骤完成编译安装
# 创建数据文件存放目录
[rootlocalhost /usr/local/src]# mkdir -p /data/mysql
[rootlocalhost /usr/local/src]# cd mysql-8.0.18/# 新建目录存放编译产生的中间文件。因为不允许在源码目录下进行编译
[rootlocalhost /usr/local/src/mysql-8.0.18]# mkdir builder
[rootlocalhost /usr/local/src/mysql-8.0.18]# cd builder/
[rootlocalhost /usr/local/src/mysql-8.0.18/builder]# cmake3 ../ -DCMAKE_INSTALL_PREFIX/usr/local/mysql -DMYSQL_DATADIR/data/mysql -DSYSCONFDIR/etc -DMYSQL_USERmysql -DWITH_MYISAM_STORAGE_ENGINE1 -DWITH_INNOBASE_STORAGE_ENGINE1 -DMYSQL_UNIX_ADDR/tmp/mysql.sock -DMYSQL_TCP_PORT3306 -DEXTRA_CHARSETSall -DDEFAULT_CHARSETutf8mb4 -DDEFAULT_COLLATIONutf8mb4_general_ci -DWITH_DEBUG0 -DMYSQL_MAINTAINER_MODE0 -DWITH_SYSTEMD1 -DDOWNLOAD_BOOST1 -DWITH_BOOST../boost
[rootlocalhost /usr/local/src/mysql-8.0.18/builder]# make make install编译安装会比较耗时大概1-2个小时······ cmake3命令所使用的参数说明
-DCMAKE_INSTALL_PREFIX/usr/local/mysqlMySQL安装的根目录-DMYSQL_DATADIR/data/mysql数据文件所存放的目录-DSYSCONFDIR/etc MySQL配置文件所在目录-DMYSQL_USERmysqlMySQL服务的用户名-DWITH_MYISAM_STORAGE_ENGINE1安装MyISAM引擎-DWITH_INNOBASE_STORAGE_ENGINE1安装InnoDB引擎-DWITH_ARCHIVE_STORAGE_ENGINE1安装Archive引擎-DWITH_MEMORY_STORAGE_ENGINE1安装Memory引擎-DWITH_FEDERATED_STORAGE_ENGINE1安装Federated引擎-DWITH_PARTITION_STORAGE_ENGINE1安装Partition引擎-DWITH_READLINE1MySQL的readline library-DMYSQL_UNIX_ADDR/tmp/mysql.socksock文件的路径-DMYSQL_TCP_PORT3306 MySQL的监听端口-DENABLED_LOCAL_INFILE1启用加载本地数据-DENABLE_DOWNLOADS1编译时允许自主下载相关文件-DEXTRA_CHARSETSall 使MySQL支持所有的扩展字符-DDEFAULT_CHARSETutf8mb4设置默认字符集为utf8mb4 -DDEFAULT_COLLATIONutf8mb4_general_ci设置默认字符校对-DWITH_DEBUG0禁用调试模式-DMYSQL_MAINTAINER_MODE0是否启用mysql维护器特定的开发环境-DDOWNLOAD_BOOST1允许在线更新boost库-DWITH_BOOST…/boost指定boost安装路径
具体参考官方文档 https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
2、编译安装完成后创建mysql用户及更改相应目录的属主
[rootlocalhost ~]# groupadd mysql
[rootlocalhost ~]# useradd -M -g mysql -s /sbin/nologin mysql
[rootlocalhost ~]# chown -R mysql:mysql /usr/local/mysql/
[rootlocalhost ~]# chown -R mysql:mysql /data/mysql/3、编辑配置文件
[rootlocalhost ~]# vim /etc/my.cnf
[mysqld]
basedir/usr/local/mysql
datadir/data/mysql
socket/tmp/mysql.sock[mysqld_safe]
log-error/var/log/mysqld/mysqld.log
pid-file/var/run/mysqld/mysql.pid4、创建日志文件存放的目录和pid文件存放的目录并赋权给mysql用户
[rootlocalhost ~]# mkdir -p /var/log/mysqld /var/run/mysqld
[rootlocalhost ~]# chown -R mysql:mysql /var/log/mysqld
[rootlocalhost ~]# chown -R mysql:mysql /var/run/mysqld5、配置环境变量方便使用MySQL的命令
[rootlocalhost ~]# vim /etc/profile
export MYSQL_HOME/usr/local/mysql
export PATH$PATH:$MYSQL_HOME/bin
[rootlocalhost ~]# source /etc/profile
[rootlocalhost ~]# mysql --version # 验证配置是否成功
mysql Ver 8.0.18 for Linux on x86_64 (Source distribution)
[rootlocalhost ~]#6、执行如下命令初始化数据库
[rootlocalhost ~]# mysqld --initialize --usermysql --basedir/usr/local/mysql/ --datadir/data/mysql初始化成功后会生成root账户的默认密码。 将该密码复制并保存因为后面需要使用该密码登录到MySQL中修改密码。
7、将MySQL生成的启动文件复制到/usr/lib/systemd/system/目录下
[rootlocalhost ~]# cp /usr/local/src/mysql-8.0.18/builder/scripts/mysqld.service /usr/lib/systemd/system/
[rootlocalhost ~]# chown 775 /usr/lib/systemd/system/mysqld.service8、查看3306端口是否已正常监听
[rootlocalhost ~]# netstat -lntp |grep 3306
tcp6 0 0 :::33060 :::* LISTEN 27363/mysqld
tcp6 0 0 :::3306 :::* LISTEN 27363/mysqld
[rootlocalhost ~]#9、使用默认密码登录MySQL并重置密码及开放远程登录
[rootlocalhost ~]# mysql -uroot -pmXyfy/g8\)aus
mysql ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY your_password; # 重置密码
mysql use mysql;
mysql update user set host % where userroot; # 开放远程登录
mysql FLUSH PRIVILEGES; # 刷新修改到这里那么MySQL源码安装已经配置完毕即可使用。
四、其他步骤
1、创建数据库school字符集为utf82、在school数据库中创建Student和Score表 3、授权用户tom密码Mysql123能够从任何地方登录并管理数据库school。4、使用mysql客户端登录服务器重置root密码
这里我们需要使用MySQL命令客户端或图形化界面工具来完成这里我们主要讲解SQL语句
1、创建数据库school并设置字符集为utf8
CREATE DATABASE school CHARACTER SET utf8;2、创建Students表
USE school;CREATE TABLE Student (Id INT(10) PRIMARY KEY AUTO_INCREMENT,Name VARCHAR(20) NOT NULL UNIQUE,Sex VARCHAR(4),Birth YEAR,Department VARCHAR(20),Address VARCHAR(50)
);3、创建Score表
CREATE TABLE Score (Id INT(10) PRIMARY KEY AUTO_INCREMENT,StuId INT(10) NOT NULL,CName VARCHAR(20),Grade INT(10)
);这里查看下表结构
4、授权用户tom并设置密码Mysql123以允许从任何地方登录并管理数据库school
CREATE USER tom% IDENTIFIED BY Mysql123;
GRANT ALL PRIVILEGES ON school.* TO tom%;
FLUSH PRIVILEGES;这里授予tom用户对school数据库的所有权限并设置允许从任何地方登录。
5、使用mysql客户端登录服务器重置root密码 这里有多种方式重置用户密码我仅展示在Linux环境下的mysql8.0.x重置密码方法 5.1 登录linux服务器可以使用sudo的账号权限 5.2 执行命令修改mysql配置文件
vim /etc/my.cnf5.3 打开后添加skip-grant-tables skip-grant-tables #跳过授权表 5.4 重启MySQL服务
systemctl restart mysqld5.5 之后我们进入mysql里面直接输入mysql回车就行
mysqluse mysql;
mysqlupdate user set authentication_stringZY123666 where userroot;
mysqlexit5.6 再次编辑mysql配置文件将添加的#skip-grant-tables #注释掉 5.7 再次重启MySQL服务
systemctl restart mysqld至此密码修改成功。