mysql5.7的安装笔记

前言

mysql安装方法有很多种,这里主要记录windows系统zip格式安装和 linux 源码编译的安装

  • windows版 mysql大概是5.7.11以上的绿色版 解压就后没有了my.default的配置文件如果没有就手动创建
  • linux编译需要boost库(推荐),等,官网也有带boost库的mysql源码文件编译时可以不指明boost库
  • 关于编译参数路径要统一,my.cnf中可以指明启动服务加载的pid,sock。但客户端连接时会有找不到sock的错误,如果确定sock生成尝试在-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock 编译的路径下创建sock的软连接。
  • linux mysql安装后通过basedir/bin/mysqld在datadir/初始化各种实例
  • mysql加载my.cnf 顺序为:/etc; ?/etc/mysql; ?/usr/local/mysql/etc/ 其它位置需要使用 #-defaults-file来指明。
  • 使用systemctl 管理mysql启动时可能会有连接超时的错误 ,把type=forking和PIDFile=path注释掉就好
  • centos7 最好先关闭防火墙。会有bad port的错误

准备

windows卸载

  • windows版 /bin net stop msyql --停止服务
  • mysqld --remove [mysql] --卸载服务

linux卸载

  • #rpm -qa| grep -i mysql --查看通过rpm 安装的mysql
  • #yum -y remove mysql-* --卸载
  • #find / -name mysql --查找mysql相关文件
  • # rm -rf file --逐条删除或者 #find / -name mysql|xargs rm -rf
  • #rpm -qa|grep mariadb --查找系统自带的 mariadb相关包
  • #rpm -e file --卸载
安装
  1. windows系统安装
  • 解压文件
  • 在解压的根目录创建mysql启动文件 my.ini如下:
    [mysqld]
    basedir=yourpath
    datadir=yourpath --data目录必须为空,也可删除
    port=3306
    character_set_server=utf8
  • /bin/ mysqld --initialize-insecure --免密码初始化
  • mysqld --install 服务名 --完成安装
  • mysqld --remove 服务名 --卸载
  1. 基于centos7系统安装(大致分两步)

安装依赖

  • 下载1.59以上的boost库最好不要使用yum安装,版本太低。下载后不安装也行,记住路径,编译时要用
  • yum install -y gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl cmake

第一步 解压文件,创建编译脚本,编译安装

  • #tar -xf mysql-5.7.20.tar.gz --解压文件
  • #cd mysql-5.7.20(解压的目录)
  • #vi cmake.sh ----创建编译脚本写入如下参数准备编译详情

!/bin/bash
cmake .
-DCMAKE_INSTALL_PREFIX=/home/mysql \ -- 安装的目录
-DMYSQL_DATADIR=/home/mysql/data \ --数据库目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \ --客户端连接的sock文件
-DSYSCONFDIR=/home/mysql/etc \ --配置文件目录
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_TCP_PORT=3306 \ --端口
-DDEFAULT_CHARSET=utf8 \ --字符集
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DDOWNLOAD_BOOST=1 \ --下载boost库,如果带boost库的源码可以不下载
-DWITH_BOOST=yourboost \ --指定你下载的boost库路径网上说可以不用的,我没有成功
-DMYSQL_USER=mysql --用户

image.png

  • #bash cmake.sh --执行脚本如图表示成功
    image.png
  • #make && make install --进行编译安装如果编译失败就删掉编译缓存的文件重新编译
    image.png
  • 到此mysql安装的目录会有相关文件生成,查看bin目录会有很多可执行的脚本,通过mysql/mysqld/mysqladmin/mysql_safe 等等执行脚本完成全部安装,配置多实例。
    image.png

第二步 创建用户,用户组,和相关目录准备mysql初始化/配置多实例

  • #groupdd mysql --创建mysql用户组
  • #useradd -g mysql mysql --为mysql组添加mysql用户 (可省略)
  • #mkdir -p mysql/{data,logs,etc} --创建mysql 安装目录,数据库初始化数据目录,日志目录,配置文件目录
  • #chown -R mysql:mysql /home/mysql --把安装目录交给mysql用户
  • #vi /home/mysql/my.cnf --编写my.cnf脚本

[mysqld]
port=3306
dasedir=/home/mysql --mysql安装目录
datadir=/home/mysql/data --mysql初始化目录
user=mysql
[client]
socket=/home/mysql/mysql.sock----指定端登录进来去哪里找sock文件

  • #cd bin --进入mysql安装的bin目录
  • #./mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data -- 执行数据库初始化
    image.png
  • # ./mysqld --defaults-file=/home/mysql/my.cnf --测试是否可以启动mysql服务
    image.png

还可以使用 ./mysql_safe --user=mysql --defaults-file=/home/mysql/my.cnf 或者在 /etc/init.d目录创建mysql.server的软连接时候用service start/stop来启动(并不推荐)mysql4种启动方法

  • #./mysqladmin -uroot -p shutdown --停止服务完成后续步骤。

如果无法回到命令行使用 Ctrl+\ /即可 此时mysqld的服务就结束了,并不会后台运行。

  • #vi /usr/lib/systemd/system/mysqld.service --编写mysql启动脚本使用systemd 来管理(推荐)

[Unit] --主要包括对服务的说明可省略
Description=MySQL Server --描述
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target --描述服务类别
[Service] --是服务的关键 execstart/stop/reload指定启动/停止/重启,
Type=forking --后台的形式运行
PIDFile= --存放pid的位置
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/my.cnf --启动
ExecReload= --重启
ExecStop= --停止
LimitNOFILE = 5000
User=mysql
Group=mysql
[Install] --安装服务的相关设置
WantedBy=multi-user.target

image.png

  • #systemctl daemon-reload -- 加载更改的单元
  • #systemctl enable mysqld --开机启动
  • #systemctl start mysqld --启动
image.png

到此mysql已经安装完成!

登陆

开启公共端口 ,创建用户远程登陆

  • # firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • # firewall-cmd --reload

修改密码,添加用户远程登陆详情

  • set password = password('yourpassword')
    image.png
  • 如果不是用初始密码登陆比如--skip-grant-tables 参数 可以如下修改
    image.png

    image.png
  • # show variables like '%char%'; //查看字符集
  • # set character_set_client/.....=utf8 //如果配置文件中错误可以通过命令设置
  • #show databases;
  • #use mysql;
  • #show tables;
  • # select host,user form user; --查看用户登陆的权限
    image.png
  • #grant all privileges on databasename.tablename to 'username'@'host' identified by 'youpassword' --创建username用户在databasename库tablename表 进行增删该查操作。databasename/tablename 用 * 代替,代表所有库/表。host为% 允许所有连接。
  • #flush privileges --刷新
image.png
  • 到此mysql 修改密码远程登陆已经完成。

配置多实例

  • #cd /home/mysql/data/ -- 进入datadir 的目录
  • #mkdir -p data3307/{data,log} --创建3307实例的data目录
  • #cd data3307 && vi my.cnf --创建my.cnf 文件,指定basedir,datadir,pid,sock的路径
    image.png
  • #chown -R mysql:mysql data3307 --更改为mysql为所有者和组
  • 进入basedir/bin下 执行初始化 同上,注意加载的是另一个my.cnf
  • 通过.sock文件来登陆不同的实例
    image.png
  • vi /usr/lib/systemd/system/mysqld3307.service 写入启动的service单元
    image.png
  • #firewall-cmd --zone=public --add-port=3307/tcp --permanent(可省略) --开启端口
  • #systemctl daemon-reload /enable/start --开机启动
    image.png
  • 可以重复以上,配置更多实例 到此mysql5.7.20 已经全部结束!

错误总结

  • sock 连接错误!检查编译的路径是否和配置统一。或者在错误的路径创建目标sock的软连接
    image.png
  • bad port的错误!暂时未解决
    image.png
  • 如果启动连接超时,日志又没有报错则注释掉Tyep 、Pidfile 试试。
    image.png

到此结束后续更新 ---

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容