1. 编译前准备环境
CentOS7.4
编译安装 mariadb-10.2.12.tar.gz
- iptables -vnL #查看防火墙状态
- systemctl stop firewall #关闭防火墙
- getenforce #查看 SELinux 状态
- setenforce 0 #关闭 SELinux
- rpm -q mariadb-server #检查 mariadb 是否安装
2. 安装开发相关包组
- yum groupinstall 'development tools'
- yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake libevent-devel gnutls-devel libaio-devel openssl-devel ncurses-devel libxml2-devel
3. 创建 mysql 系统用户
useradd -r mysql -s /sbin/nologin
4. 解压源码包
tar xvf mariadb-10.2.12.tar.gz -C /usr/local/
5. 进入解压包路径
cd /usr/local/mariadb-10.2.15/
6. 执行 cmake make && make install(初始化参数)
cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql -DMYSQL_DATADIR=/data/mysqldb/ -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
7. 开始编译安装
make -j 8 && make install
8. 准备环境变量
- echo 'PATH=/data/mysql/bin:$PATH'> /etc/profile.d/mysql.sh
- source /etc/profile.d/mysql.sh #立即生效环境变量
9. 把 / data 目录下的 mysql 目录 属主 mysql 属组 mysql
chown -R mysql.mysql /data/mysql/
10. 准备配置文件
- # 复制配置文件模板覆盖到配置文件里修改
- cp -a /data/mysql/support-files/my-huge.cnf /etc/my.cnf
- vim /etc/my.cnf
- socket= /data/mysqldb/mysql.sock #修改数据指向路径
- datadir=/data/mysqldb #指定数据库位置
11. 准备启动脚本
- cp -a /data/mysql/support-files/mysql.server /etc/init.d/mysqld
- chmod +x /etc/init.d/mysqld #以防万一给予启动脚本执行权限
12. 创建数据库库目录
mkdir /data/mysqldb
13. 初始化数据库
- cd /data/mysql/
- #指定以 mysql 用户的身份 路径在配置文件指定 (数据存放位置)
- scripts/mysql_installl_db --user=mysql --datadir=/data/mysqldb
14. 添加开机启动
- chkconfig --add mysqld #添加服务到开启启动项
- chkconfig mysqld on #设置开机自动启动
- chkconfig --list mysqld #查看服务是否添加成功
15. 启动服务
- systemctl start mysqld #开启服务
- ss -tnl #查看 3306 是否处于监听状态
16. 编译安装完成
mysql 默认没有密码 记得设置 mysql root 用户的密码
17. 运行安全脚本 (修改数据库管理员密码)
- mysql
- #查看 user 表里的用户, 密码, 主机
- select user,host,password from mysql.user;
- #使用 password 函数加密口令, 然后修改 root 密码
- update mysql.user set password=password("centos") where user='root';
18. 报错解决方案
提示报错可能是权限不足 用户没有访问数据库存放位置的权限
两种解决方案 A: 修改配置文件的 socket 路径: 直接指向到数据库 (注意目录需赋予权限)
B: 修改父级目录执行权限
例: /data/mysqldb (数据库路径)
chown mysql.mysql /data
来源: http://www.bubuko.com/infodetail-2631473.html