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://blog.51cto.com/13769014/2124885
时间: 2024-10-05 05:04:51