Linux服务器架设篇之(一)--源码安装mysql

##

Linux服务器架设篇之(一)–源码安装mysql

一.环境介绍:

  • Linux版本: CentOS 7 64位
  • mysq版本: mysql-5.6.26

这是我安装时所使用的版本,并不是必须的,您可以Red Hat/CentOS 7以及mysql5.6相近的版本
源码安装mysql的运行效率比使用rpm安装的更高, 所以推荐使用源码安装mysql(不过源码安装mysql耗时较久,大约30分钟)

二.安装:

1, 安装cmake(mysql编译工具)

(先安装相关工具(依赖包)
yum install -y gcc gcc-c++ git ncurses-devel
yum install -y cmake
yum install 在线安装, 需要连接外网时是才可用

参数-y 表示安装时自动执行 yes, 即不会再询问您是否安装, -y是yum的参数, 也可放在install前面

Linux服务器架设篇之(一)--源码安装mysql_第1张图片

至此cmake编译工具安装成功!

2,准备工作:

groupadd mysql  #创建mysql用户组
useradd -g mysql mysql -s /sbin/nologin  #创建mysql用户,加入mysql组中,并且禁止mysql用户登录系统
mkdir -p /usr/local/mysql  #创建mysql安装目录
mkdir -p /data/mysql  #创建mysql数据库存放目录
chown -R mysql:mysql /data/mysql  #设置mysql数据库存放目录权限

3, 获取mysql源码
(http://mysql.mirror.kangaroot.net/Downloads, 您可以这个网站中选择您所需要的mysql版本, 我选择的是mysql-5.6.26, 使用wget下载到linux中)

cd /alidata/server/source  #此目录随意
wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz  #下载
tar -zxvf mysql-5.6.26.tar.gz  #解压

使用cmake编译:

高版本需要boost
先mkdir -p /usr/local/boost
cd /usr/local/boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

cd mysql-5.6.26  #进入源码目录
cmake . -DCMAKE_CXX_COMPILER="g++" -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFIGDIR=/etc -DWITH_BOOST=/usr/local/boost/boost_1_59_0
参数解析:
    -DCMAKE_CXX_COMPILER 指定编译器
    -DCMAKE_INSTALL_PREFIX 指定安装文件目录
    -DMYSQL_DATADIR 指定mysql数据库文件目录
    -DSYSCONFIGDIR 指定mysql配置文件目录


执行无误后,则再执行以下命令:

make
make install

无报错则安装成功, 此时还无法正常使用, 需作如下配置:

###三.配置:

rm -rf /etc/my.cnf    #删除系统默认的配置文件
cd /usr/local/mysql  #进入安装目录
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql  #初始化系统数据库
./bin/mysqld --initialize  --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql  #5.7用这个初始化系统数据库
ln -s /usr/local/mysql/my.cnf /etc/my.cnf  #添加mysql配置文件的软链接
vim /etc/my.cnf,在[mysqld]后添加character-set-server=utf8 #设置mysql默认字符集
cp ./support-files/mysql.server /etc/init.d/mysqld  #把mysql加入系统启动
chmod 775 /etc/init.d/mysqld  #添加执行权限
chkconfig mysqld on 将mysql服务设置成开机自启动

修改/etc/init.d/mysqld文件

> vim /etc/init.d/mysqld

找到basedir和datadir, 改成

basedir=/usr/local/mysql
datadir=/data/mysql
:wq #保存并退出

启动mysql:

service mysqld start

修改/etc/profile文件
在最下面添加如下配置:

vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
:wq #保存并退出
source /etc/profile  #使配置生效

以下将mysql库文件链接到系统默认文件, 在编译php等软件时就可以不用指定mysql库目录了

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mkdir -p /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock  #此文件是创建与mysqld服务器相关的MySQL通信端点所使用的套接字,放至默认文件夹,安装php时不会报错

设置mysql root密码

执行:
5.7开始先执行mysqld_safe --skip-grant-tables 
然后进入mysql修改root的密码和host

最后再执行以下命令
mysql_secure_installation
按提示输入root用户密码 

Linux服务器架设篇之(一)--源码安装mysql_第2张图片
创建mysql新用户, 通常程序并不直接连接root用户, root用户也不对远程可访问,所有另外创建用户来连接

mysql -uroot -p  #进入mysql,输入刚设置的密码

创建一个用户并授权

grant all privileges on *.* to '用户名' @'%' identified by '密码' with grant option;  #创建一个对所有库所有表有所有操作权限的用户

解析:
all privileges 代表所有权限,也可写具体某一个或多个(多个用,隔开即可),
所有权限有:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限

on *.* 
第一个*代表数据库,第二个*代表该库上的表, *表示全部
如test数据库下oa表就是 on text.oa

to '用户名'** 即将前面的权限赋给此用户

@'%'
此%是指用户地址, 可以是localhost,用户ip, 域名, %
填localhost则只能本机访问,
填用户ip, 则只有指定的这个ip才可以使用此用户登录访问,
%表示任何地址

by '密码' 必填项

with grant option(可选)
表示被创建的用户同样可以创建其他用户并赋权限

flush privileges;    #写入

退出ctrl+c

service mysqld restart

至此, 源码安装mysql已经完毕.

你可能感兴趣的:(Linux)