mysq5.7.44源代码形式
下载安装配置
官网文档
mysql下载
打开mysql官网网站,点击download步入下载页面。
在下载页面中找到mysql社区服务器版本,点击“MySQLCommunity(GPL)Downloads»”进入社区服务器版的下载页面。
点击社区服务器版“MySQLCommunityServer”

点击存档“Archives”,选择操作系统,操作系统版本,找到源码。
源安装先决条件gcc-c++编译器
yuminstall-ygcc-c++
CMake编译工具
CMake是一个跨平台的开源重构工具,用于建立mysql软件。他写CMakeLists.txt文件来描述项目的结构,用cmake生成makefile文件,共make编译使用。
yuminstallcmake
cmake官网下载
,源码编译见软件包中的readme文件。
查看cmake版本
cmake--version
make编译工具
通常系统自带这个编译工具,可以通过make--version查看版本。
OpenSSL库
须要SSL库来支持加密联接、随机数生成。
yuminstallopenssl-devel
BoostC++库

Boost是一个由C++社区开发和维护的开源C++库集合,致力扩充C++语言的功能和性能。
建立MySQL须要BoostC++库,必须安装Boost1.59.0,安装Boost后,按照调用WITH_BOOST在CMake时为选项设置的值告诉建立系统Boost文件的放置位置。
见以下两个选项:
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost
ncurses库
ncurses库是一个用于创建文本用户界面(TUI)的开发库。
yuminstallncurses-devel
Perl库
倘若您准备运行测试脚本,则须要Perl。
mysql安装创建mysql用户和组
groupaddmysql
useradd-r-gmysql-s/bin/falsemysql
安装
解压
cd/soft
tarzxvfmysql-5.7.44.tar.gz
cdmysql-5.7.44
创建建立目录
mkdirbuild
cdbuild
建立make编译文件
cmake..
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/home/mysql
-DSYSCONFDIR=/etc
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DMYSQL_TCP_PORT=3306

-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost

说明:
-DCMAKE_INSTALL_PREFIX:配置安装到特定路径
-DMYSQL_DATADIR:配置数据目录
-DSYSCONFDIR:配置选项文件的目录
-DDEFAULT_CHARSET:配置mysql服务字符集,默认字符是latin1(cp1252欧洲)字符集
-DDEFAULT_COLLATION:服务器排序规则。默认排序规则使用latin1_swedish_ci。
-DMYSQL_TCP_PORT:服务器侦听TCP/IP联接的端标语。默认值为3306。
-DDOWNLOAD_BOOST:检测是否有boost库
重新建立时运行以下命令清楚历史重构信息
makeclean
rm-rfCMakeCache.txt
编译&安装
make

makeinstall

mysql设置创建mysql用户和组
groupaddmysql
useradd-r-gmysql-s/bin/falsemysql
添加环境变量
echo'exportPATH=$PATH:/usr/local/mysql/bin'>>/etc/profile
source/etc/profile
echo$PATH
初始化数据目录
切换到mysql软件根目录
cd/usr/local/mysql
创建mysql-files目录
mkdirmysql-files
chownmysql:mysqlmysql-files
mysql-files目录提供了一个便捷的位置来用作系统变量的值secure_file_priv,这将导出和导入操作限制到特定目录。
创建mysql配置文件
vi/etc/f
basedir=/usr/local/mysql
datadir=/home/mysql
MySQL安装完成后,必须初始化数据目录。
bin/mysqld--defaults-file=/etc/f
--initialize
--user=mysql
--defaults-file:指定初始化时的配置文件linux培训班,必须在选项的第一位。(配置文件中只能有basedir和datadirlinux ncurses-5.7安装linux ncurses-5.7安装,其他选项须要在初始化后才会加入)
--initialize:初始化
--user:指定mysql软件运行用户
注意:初始化数据库目录时,不仅使用--basedir、--datadir、--user选项外,不应当使用其他选项。其他选项可以在初始化完成后再f手指定,之后重启mysql服务。意思就是说初始化数据库目录时最多只能使用--basedir、--datadir、--user选项。
布署手动支持安全联接的服务器
bin/mysql_ssl_rsa_setup
启动服务器
bin/mysqld_safe--user=mysql&
对于使用RPM包安装MySQL的Linux系统,服务器启动和关掉是使用systemd而不是mysqld_safe管理的,而且不安装mysqld_safe。
开机启动启动服务器
cdsupport-files/
cpmysql.server/etc/init.d/mysql
chmod+x/etc/init.d/mysql
chkconfig--addmysql
启动停止和重启
servicemysqlstart
servicemysqlstop
servicemysqlrestart
更改root密码
登陆mysql后运行如下命令更改密码,登陆密码在初始化数据目录时有显示。
ALTERUSER'root'@'localhost'IDENTIFIEDBY'Welcome123#';
查看用户
查看默认存在的用户
selectuser,hostfrommysql.user;

使用systemd管理MySQL服务器创建MySQL的systemd服务单元文件
你须要在“/etc/systemd/system/”创建一个“mysql.service”的文件,告诉systemd怎样管理MySQL服务。
文件内容如下:
Description=MySQLServer
After=network.target
ExecStart=/usr/local/mysql/bin/mysqld_safe--user=mysql
ExecStop=/usr/local/mysql/bin/mysqladminshutdown
User=mysql
Group=mysql
Restart=always
WantedBy=multi-user.target

说明:
After=network.target是systemd服务单元文件中的一个指令,它指定了服务单元所依赖的其他单元。具体来说,network.target是一个systemd的单元linux服务器搭建,表示网路服务早已启动并可用。
Restart=always意味着当服务意外退出(即非正常退出)时,systemd会手动尝试重新启动该服务。
WantedBy=multi-user.target是systemd服务单元文件中的一个指令,它定义了服务的启动级别(runlevel)。在systemd中,系统的启动级别通过一个称为target的单元来表示。multi-user.target是系统的多用户运行级别,一般用于大多数服务器环境,表示系统早已启动到了可以提供多用户登入和运行多个服务的阶段。WantedBy=multi-user.target指定了MySQL服务的启动级别,并告诉systemd在系统启动到多用户运行级别时启动MySQL服务。
重新加载systemd管理器配置
创建完服务单元文件后,须要通知systemd重新加载它的配置,便于辨识到新的MySQL服务单元。
systemctldaemon-reload
使用systemd管理mysql

启动:systemctlstartmysql
停止:systemctlstopmysql
开机自启:systemctlenablemysql
取消开机自启:systemctldisablemysql
查看状态:systemctlstatusmysql
配置mysqlsystemd选项
这个配置不是必须的,通常不配置
可以在
/etc/systemd/system/mysqld.service.d目录下创建一个配置文件,用于systemd管理mysql启用停止等操作的选项。
创建目录
mkdir-p/etc/systemd/system/mysqld.service.d
创建配置文件override.conf
systemd的override.conf配置选项与f中的选项参数不一样,不能互相使用。配置文件的参数可以配置如下参数。注意这儿是配置systemd启动mysql时使用的参数。
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit
Environment=”LD_PRELOAD=/path/to/malloc/library”
Environment=”TZ=time_zone_setting”
说明:
PIDFile:指定进程ID文件
LimitNOFILE:设置MySQL服务器可用的文件描述符的数目
LimitCore:设置最大核心文件大小。
Nice:设置MySQL服务器的调度优先级
Environment:一些MySQL参数是使用环境变量配置的。
LD_PRELOAD:设置显存分配库。
TZ:设置默认时区。
systemd重新加载配置
systemctldaemon-reload
