准备工作:1.确认没有使用RPM安装过MySQL-server(服务端) mysql(客户端) 2.安装光盘自带的ncurses-devel包 3.安装cmake包 Cmake编译安装: tar zxf cmake-2.8.6.tar.gz -C /usr/src cd /usr/src/cmake-2.8.6 ./configure gmake &&gmake install 然后编译安装mysql
前提先创建运行账户 groupadd mysql 先创建一个私有组 Useradd -M -s /sbin/nologin -g mysql mysql 指定使用的shell 这个shell 不需要直接登陆到系统 -M不给账户分配宿主目录 -g 给用户指定私有组 最后创建一个账户名为mysql 然后开始解压mysql的源代码包 tar zxf mysql-5.6.36.tar.gz -C /usr/src cd /usr/src/mysql-5.6.36 然后开始配置,mysql和其他源代码包不一样 他需要用cmake来配置 其他需要的是./configure 而mysql内并没有./configure
配置命令:cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 指定mysql程序安装到哪个目录 一般安装在/usr/local/mysql
-DSYSCONFDIR=/etc 指定配置文件的目录 my.cnf -DDEFAULT_CHARSET=utf8 指定使用的字符集编码 -DDEFAULT_COLLATION=utf8_general_ci 指定校对规则 utf8_general_ci 是适用于utf8字符集的通用规则 -DWITH_EXTRA_CHARSETS=all 指定额外支持的其他字符集编码 all为支持所有 然后 编译并安装 make && makeinstall 安装后还需要调整 先对数据库的目录进行权限调整 chown -R mysql:mysql /usr/local/mysql
-R 表示将设置的属主和属组递归下去 将下层所有目录也递归 先属主后属组 然后建立配置文件 本来随着他的安装成功 已经在/etc/my.cnf 有了配置文件 但是centos 7默认支持的是maria db 数据库 而不是mysql数据库 因此其配置文件是maria db的配置文件 而非mysql的 我们可以去mysql源码目录内的support-files 文件下 将mysql默认的样本配置文件my-default.cnf 文件替换过来 命令如下 先将原来的删除 rm -rf /etc/my.cnf 然后复制 cp support-files/my-default.cnf /etc/my.cnf 复制完成之后我们就有了mysql 的配置文件 然后开始初始化数据库 使用初始化脚本mysql_install_db /usr/local/mysql/scripts/mysql_install_db --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user 指定以什么用户去执行脚本 mysql --basedir 执行脚本的目录 /usr/local/mysql --datadir 指定数据存放的目录 /usr/local/mysql/data Mysql 每个表内有三个文件类型 *.frm:保存表结构的 *.myd:保存表数据的 *.myi:保存表索引的 初始化结束之后 为了方便在任何目录下使用mysql命令 需要在/etc/profile 设置环境变量 echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile 设置完之后并不会立即生效 使用命令 ./etc/profile 使其立即生效 这个时候我们使用systemctl是无法进行管理服务的 需要使用support-files下的mysql.server脚本文件将其复制到mysql的bin目录下使用并改名为mysql.sh cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh 然后现在其他用户若是想启动服务没有权限 所以还要分配权限 chmod +x /usr/local/mysql/bin/mysqld.sh
然后创建mysql系统服务的配置文件 vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server After=network.target

[Service] User=mysql Group=mysql

Type =forking PIDFile=/usr/local/mysql/data/www.pid 指定pid文件位置 主机名.picl ExecStart=/usr/local/mysql/bin/mysqld.sh start ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[Install] WantedBy=multi-user.target 现在我们就可以通过 systemctl start mysqld启动 netstat -anpt 查看服务器端口号 mysqld 的端口号是TCP的3306 永久修改主机名 可以通过 hostnamectl set-hostname 来修改