文章目录
- 第一章:mariadb在rhel7上的使用
- 第二章:mariadb在rhel6上的安装
- (1)编译源码包(比较慢)
- (2)二进制包安装(比较推荐)
第一章:mariadb在rhel7上的使用
rhel7及以上系统默认安装了mariadb(低版本)
下图列举了rhel7.3自带的版本,本章操作以rhel7.3为例
所以,此处记录一下使用系统自带的mariadb
- 启动mariadb服务
systemctl start mariadb
- 设置mariadb服务为开启自启(自愿)
systemctl enable mariadb
- 设置账户密码(注:默认root无密码)
# 按照提示,一步步执行即可。初始root无密码
mysql_secure_installation
- 密码设置成功后,测试登录
# 用户为root,密码为123456
mysql -uroot -p123456
第二章:mariadb在rhel6上的安装
rhel6上面没有自带mariadb,如果要使用,需要自行安装。
操作步骤见下,可能略有不同
参考文章:CentOS6下编译安装MariaDB
上述链接提供了两种方式
(1)编译源码包(比较慢)
- 安装前环境准备
# 1.安装依赖
yum -y install cmake gcc gcc-c++ openssl-devel ncurses-devel
# 2.准备源码包,下载地址:http://archive.mariadb.org/
mariadb-5.5.43.tar.gz
# 3.创建数据存放目录和配置文件目录
mkdir /mydata
mkdir /etc/mysql
- 预编译安装
# 1.解压mairadb-5.5.43.tar.gz
tar -zxvf mariadb-5.5.43.tar.gz
# 2.进入解压后的目录
cd mariadb-5.5.43
# 3.执行cmake命令预编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.43 -DMYSQL_DATADIR=/mydata -DSYSCONFDIR=/etc/mysql/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
# -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.43:编译后存放路径
# -DMYSQL_DATADIR=/mydata:数据存放目录
# -DSYSCONFDIR=/etc/mysql:配置文件存放目录
- 编译安装
make && make install
(2)二进制包安装(比较推荐)
- 安装前环境准备
# 1.组和用户:mysql
useradd -r mysql
groupadd -r mysql
# 2.数据存放目录
mkdir -p /mydata
# 3.配置文件目录
mkdir -p /etc/mysql
# 4.二进制包:下载路径http://archive.mariadb.org/
mariadb-5.5.43-linux-x86_64.tar.gz
2.安装
# 1.解压mariadb-5.5.43-linux-x86_64.tar.gz到/usr/local目录中
tar -zxvf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local
# 2.将解压后的目录链接为mysql
ln -sv /usr/local/mariadb-5.5.43 /usr/local/mysql
# 3.进入mysql目录,将所有文件属主改为root,属组改为mysql
cd /usr/local/mysql
chown -Rv root:mysql ./*
# 4.执行scripts目录下mysql_install_db文件,并指明数据存放目录和用户
scripts/mysql_install_db --datadir=/mydata --user=mysql # 注意当前路径为:/usr/local/mysql
3.安装后配置
# 1.将support-files目录下mysql.server文件复制为/etc/rc.d/init.d/mysqld文件
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# 2.将其添加到chkconfig启动项
chkconfig --add mysqld
# 3.将support-files目录下my-large.conf复为/etc/mysql/my.cnf文件
cp support-files/my-large.cnf /etc/mysql/my.cnf
# 4.编辑/etc/mysql/my.cnf文件,在[mysqld]添加一下三项(我就添加了一个)
datadir=/mydata
# innodb_file_per_table=on
# skip_name_resolve=on
# 5.配置环境变量,并执行查看
cat /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH #文件内容
# 生效
source /etc/profile.d/mysql.sh
echo $PATH
- 安装完成验证
# 1.启动mysqld服务并查看状态
service mysqld status
service mysqld start
# 可能会起不来报错
# 报错a:ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql)
# 解决a:删掉/var/lock/subsys/mysql,再重启服务,重启命令:/etc/init.d/mysql start(一般就会报成功了)
# 注意:重启服务命令不要用service mysqld start了,用了还会报同样的错
# 报错b:服务通过上述命令启动成功后,查看服务状态(service mysqld status),显示ERROR! MySQL is running but PID file could not be found
# (也不算解决)解决b:我是没有理会,抓一下mysqld,看看端口开了没,开了应该就没啥问题
注意事项:
# 重启mysqld服务
/etc/init.d/mysqld start
# 查看服务状态 - 这个是7的命令,6不支持哈
systemctl status mysqld.service
# 开启服务 - 这个是7的命令,6不支持哈
systemctl start mysqld.service
# 抓端口
netstat -tnlp | grep mysql # 看到3306基本就是ok了
示意图:(我是在7上面操作了,后续可能会补一版6的)
# 2.启动mysql服务端
mysql #下图为启动成功示意图
问题解决参考文章:
1.ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
2.解决MySQL is running but PID file could not be found