文档目的
使用mysql二进制安装包在linux系统上安装部署mysql
系统环境
操作系统:Linux(Linux version 3.10.0-229.el7.x86_64 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) centos 7)
mysql版本:mysql-5.6.29-linux-glibc2.5-x86_64
操作步骤
1.上传最新版本的镜像到/usr/local/src 中
2.解压tar.gz 压缩包,将解压后的文件移到/usr/local下,
tar zxvf mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz
并命名为mysql
mv mysql-5.6.29-linux-glibc2.5-x86_64 mysql
3.此处为了防止mysql不用到除自身以外的服务,新建一个mysql组和用户mysql
,并对文件夹/usr/local/mysql授权改用户:
useradd mysql
设置密码
passwd mysql
将操作/usr/local/mysql的权限赋予组mysql:
chown -R mysql:mysql /usr/local/mysql
初始化mysql需要生成授权表,添加用户mysql, 之前要先安装perl-Module-Install.noarch帮助编译:
yum install -y perl-Module-Install.noarch
生成授权表:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注:如果没有执行这个mysql_install_db 授权命令,可能会报错“Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/rekfan.pid)”
4.初始化配置:
要优化小型数据库的配置,要复制/usr/local/mysql/support-files/my-default.cnf文件到/etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
修改配置
vim /etc/my.cnf
[client]
default-character-set = utf8mb4
#socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set = utf8mb4
.
.
.
max_connections = 500
max_connect_errors = 200
read_buffer_size = 8M
##内存表容量
max_heap_table_size=1024M
###临时表容量
tmp_table_size=1024M
#不区分表名和字段名的大小写
lower_case_table_names=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
.
.
.
5. 加入启动项
复制/usr/local/mysql/support-files/mysql.serve到/etc/init.d/mysql,
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
(注:这一步必须操作,否则无法使用service mysql start 开启mysql服务)
并修改参数
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
添加开机启动服务
chkconfig --add mysql
chkconfig mysql on
6.配置环境变量
vi /etc/profile
最后加上一句
##MYSQL 5.6 ##
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
让修改的profile文件立即生效
source /etc/profile
7.开启binlog功能
(注:在my.cnf文件的[mysqld]下加上一行(windows为mysql.ini) )
#vi /etc/my.cnf
8. 启动mysql
service mysql start
(注:数据库的字符集必须设为:utf8mb4 -- UTF-8 Unicode(支持表情包))
(注:此安装方式没有账户名和密码为空,直接输入mysql可以登入)
常见问题
问题一:安装mysql完后执行service mysql start 报错:“Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/rekfan.pid).[失败]”
解决方法:
1. 确保以下命令参数的路径和名称正确,再次执行一遍即可
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2. 可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3. 可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186
4. mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5. skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6. 错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
7. selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
8. 可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
参考文献
感谢同事亦杉的整理分享!