MySQL
(由于centOS7停止维护,所以yum源使用阿里云源代替)
1. 备份默认 repo 文件
$ cd /etc/yum.repos.d
$ sudo mkdir backup
$ sudo mv *.repo backup/
2. 配置阿里云的yum源:
阿里云
在当前目录下新建 CentOS7-Aliyun.repo(名字自己随便起),并填写以下内容
$vi CentOS7-Aliyun.repo
[base] name=CentOS-$releasever - Base - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates] name=CentOS-$releasever - Updates - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras] name=CentOS-$releasever - Extras - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
3. 清理缓存
$ sudo yum clean all && yum repolist
4. 把之前 EPEL 给补回来
$ sudo yum remove -y epel-release
$ sudo yum install -y epel-release
6# 清理缓存
$ sudo yum clean all && yum repolist
安装MySQL
将二进制免编译包上传到 /usr/local/src 目录下
$ cd /usr/local/src/ #自己通过源码包配置安装的软件包都推荐放到这个位置
# 解压后挪动位置
$ sudo tar -zxf mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz
$ sudo mv mysql-5.6.49-linux-glibc2.12-x86_64 /usr/local/mysql # 创建一个不能用于登录的账户 mysql,因为启动 MySQL 需要用到此账户
$ sudo useradd -s /sbin/nologin mysql
# 创建 MySQL 数据目录,然后授予权限
$ sudo mkdir -p /data/mysql
$ sudo chown -R mysql:mysql /data/mysql/
$ sudo chmod -R 755 /data/mysql
# 初始化 MySQL 数据目录:指定 MySQL 服务的用户是 mysql (创建的文件和目录的 owner 都会是 mysql),,并指定 MySQL 数据目录
$ cd /usr/local/mysql
# 安装必要环境
$ sudo yum install -y perl-Module-Install
# 开始编译
$ sudo ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
检查是否安装成功: 如果向上面一样看到了两个 OK 且在 /data/mysql 下看到了生成的文件和目录,说明执行正确 或者是在执行完最后一条命令江批,马上执行 echo $? 看输出的结果为 0,说明执行正确
配置 MySQL
首先复制配置文件,然后打开配置文件并把配置文件改成如下内容 $ cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"?
# 这里提示是否覆盖是因为系统内默认就有 /etc/my.cnf,直接按y就行
$ sudo vi support-files/my-default.cnf
# 替换成以下内容
[mysqld]
innodb_buffer_pool_size = 128M # 第11行
log_bin = moka #第15行
basedir = /usr/local/mysql #第18行,是MySQL包的所在地 datadir = /data/mysql #第19行,存放数据的地方
port = 3306 #第20行,默认端口号就是3306
server_id = 128 #第21行,服务的ID号
socket = /tmp/mysql.sock #第22行,MySQL服务监听的嵌套字地址 ## 关于内存的配置参数,保持默认即可
join_buffer_size = 128M #第27行
sort_buffer_size = 2M #第28行
read_rnd_buffer_size = 2M #第29行
备注: 嵌套字地址:在 Linux 系统下,很多服务不仅可以监听一个端口(通过 TCP/IP 的方式通信),也可以监听 socket,两个进程就可以通过这个 socket 文件通信
然后复制启动脚本并修改其属性
$ sudo cp support-files/mysql.server /etc/init.d/mysqld
$ sudo chmod 755 /etc/init.d/mysqld
然后修改启动脚本,并把启动脚本加入系统服务项,然后设置开机启动并启动 MySQL
$ vi /etc/init.d/mysqld # 修改的内容
datadir=/data/mysql #第47行
$ sudo chkconfig --add mysqld #把mysqld服务加入系统服务列表中
$ sudo chkconfig mysqld on #设置开机启动
$ sudo service mysqld start #启动服务
备注: 如果启动不了,就到 data/mysql 目录下查看错误日志,这个日志名通常是 [主机名].err
检查 MySQL 是否启动的命令为: # 检查 mysqld 服务的状态 $ sudo service mysqld status # 查看 mysqld 相关进程(结果应该大于2行)
$ sudo ps aux | grep mysqld # 看看有没有监听3306端口
$ sudo netstat -lnp | grep 3306
最后一个要是提示 -bash: netstat: 未找到命令 的,就是用命令 sudo yum install -y net-tools ,安装之后就可以用了