简要说明
装了五六遍mysql,解压版、安装版都装过,在此期间碰到过不少坑,每次碰到的坑还都不一样,在此特地记录下踩坑、填坑心得,有错误的和不足以及更好的解决方式的地方,希望能指出学习交流。
心得:
1.我英语贼差,所以像我一样英语差的,建议随时开着个谷歌翻译,个人感觉百度翻译的不是很准确,很多问题翻译后明白了意思,就大概知道解决方案了,出现的所有错误,请先翻译一遍。
2.日志是个好东西,mysql也有日志,很多错误日志里面记录的一般都很详细,但是有的不看日志的话,看不出报的什么错,看mysql日志后面有讲到。
3.个人感觉编译安装版的要比解压版的简单点,个人感觉出的错误相对来说少一些。
4.解压安装出现的问题很多都是初始化配置、配置文件里面的配置、权限等问题。
具体安装步骤
选择版本
截图页面地址 https://dev.mysql.com/downloads/mysql/5.7.html#downloads
获取下载地址
服务器下载
1.我所有的下载文档都放到了/software下,根据各自的不同切换到存放下载文件的目录
切换到存放软件的目录 cd /software
(根据各自需求切换后面的目录)
2.直接通过linux的wget命令下载,不能使用wget的请先自行安装
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
3.下载完成后解压
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
检查是否已安装mysql rpm -qa|grep mysql
检查是否安装mariadb,centos7默认安装的数据库软件 rpm -qa|grep mariadb
删除mariadb yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
mysql类似
使用root用户的可以忽略这一步操作
groupadd mysql
//创建用户组mysql
useradd -r -g mysql mysql
//-r参数表示mysql用户是系统用户,不可用于登录系统,创建用户mysql并将其添加到用户组mysql中
chown -R mysql mysql/
chgrp -R mysql mysql/
vim /etc/my.cnf
内容如下:
#客户端配置
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
#服务端编码
character_set_server=utf8
init_connect='SET NAMES utf8'
#安装路径
basedir=/usr/local/mysql
#数据库数据文件保存路径
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#mysql错误日志保存文件
log-error=/var/log/mysqld.log
#mysql pid保存文件
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1
#设置时间等默认值可以为空(mysql5.7以后日期时间格式的默认值不能为空,这里为向下兼容以前版本的数据,修改下参数,使其可以为空,如果是新建的数据库,不需要导以前的数据,这里可以忽略)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#最大连接数
max_connections=5000
#设置默认时区
default-time_zone = '+8:00'
保存内容,按esc输入如下命令
:wq
参数详解参考博客: http://leeyinlau.iteye.com/blog/1459274
准备工作
mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql
更改下载的mysql文件夹名称
cp -r /software/mysql /usr/local/
拷贝解压文件到安装目录
cd /usr/local/mysql/
进入mysql安装目录
初始化
/usr/local/mysql/bin/mysqld --initialize --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
获取初始密码
cat /var/log/mysqld.log
记录下来,后面要用到,如下:
打开mysql日志文件
后面可能启动会报错,可以通过日志文件查看具体的错误原因,有错误先谷歌翻译一下,知道错误的意思。
tail -f /var/log/mysqld.log
目录为上面my.cnf中设置的log-error所在文件,示例如下
初次启动
/usr/local/mysql/support-files/mysql.server start
报如下错误Starting MySQL. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
意思是没有权限
赋予root用户/var/run/mysqld读写权限
cd /var/run/
mkdir mysqld
chmod 777 mysqld
touch /var/run/mysqld/mysqld.pid
chmod 777 /var/run/mysqld/mysqld.pid
参考博客 https://www.cnblogs.com/cz-xjw/p/8006904.html