一、安装MySQL
小目录
- 在windows 8.1安装mysql
- 在centos7安装mysql
- 通过docker安装mysql
1. 在windows8.1安装mysql
1.1 安装步骤
- 步骤1:
点击这里访问mysql下载页面
- 步骤2:
Community Server就是社区版的意思,免费
- 步骤3:
选择第二个,点击download
- 步骤4:
有账号的kr以点击login,登录后下载,没账号的直接点start my download:)
- 步骤5:
- 运行下载好的 mysql-installer-community-8.0.12.0.msi
- 选择“I accept the license terms”
- 点击"Next"
- 选择“Server Only“,因为我们只需要mysql作为服务器
- 点击“Next”
检查依赖,选择需要安装的依赖软件后点击Execute,会自动下载和安装该依赖软件
- 安装完依赖后点击“Next”
- 点击Execute开始安装MySQL Server
- 安装完后点击“Next”
组复制,mysql 5.7.17后的新特性,选择第一个即可
- 点击“Next”
选择“Server Computer”后点击“Next”
- Authentication Method 点击“Next”
- 输入root密码后点击“Next”
- 点击“Next”
- 点击“Execute”
- 安装完成点击“Finsh”
1.2 什么?已经装好了?!
是的
1.3 设置mysql环境变量
- 右键点击"这台电脑"
- 点击"属性"
- 点击"高级系统设置"
点击"环境变量"
- 在“系统变量”中找到“Path”,双击“Path”
将mysql的bin目录添加到Path中,注意用分号与前一个路径分割开来,默认安装目录是C:\Program Files\MySQL\MySQL Server 8.0\bin
- 点击“确定”
1.4 windows验证mysql
- 打开任务管理器
点击服务
可以看到mysql服务已经起来了!
win7的朋友可以打开控制面板 > 管理工具 > 服务里也能找到mysql服务按win + r,输入cmd,确定
- 查看mysql版本
运行命令mysql --version
- 登录mysql
运行命令mysql -u root -p
输入root密码后按回车
-u root表示指定用户为root
-p 表示用密码登录
2. 在centos7安装mysql
2.1 由于centos7已用Mariadb代替默认的MySQL,所以直接安装Mariadb即可
sudo yum -y install mariadb mariadb-server
2.2 启动Mariadb
sudo systemctl start mariadb
2.3 开机自启动
sudo systemctl enable mariadb
2.4 安全配置
- 命令行输入:
mysql_secure_installation
Enter current password for root (enter for none):
刚安装好的mariadb没有初始密码,直接按回车即可Set root password? [Y/n]
YNew password:
输入root密码Re-enter new password:
再次输入root密码Remove anonymous users? [Y/n]
Y 删除匿名用户Disallow root login remotely? [Y/n]
Y 不允许root用户远程登录Remove test database and access to it? [Y/n]
Y 删除测试数据库Reload privilege tables now? [Y/n]
Y 重载权限表
2.5 登录mariadb
mysql -u root -p
输入密码,登录成功
2.6 配置mariadb字符集
sudo vi /etc/my.cnf
在[mysqld]下添加init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake
sudo vi /etc/my.cnf.d/client.cnf
在[client]下添加default-character-set=utf8
sudo vi /etc/my.cnf.d/mysql-clients.cnf
再[mysql]下添加default-character-set=utf8
sudo systemctl restart mariadb
重启mariadb
登录mysqlshow variables like "%character%";show variables like "%collation%";
可以看到字符集成功配置为utf8
2.7 添加用户和授权
- 创建用户
create user username@localhost identified by 'password';
其中username替换为自己的用户名,password替换为自己的密码- 创建用户并授权
grant all on *.* to username@localhost indentified by 'password';
其中all表示授予所有权限,也可以根据需求授予下面的权限select,insert,update,delete,create,drop,index,alter,grant, references,reload,shutdown,process,file
- 授权外网登录
grant all privileges on *.* to username@'%' identified by 'password';
其中%表示任何地址都可以访问mariadb- 授予用户授权的权限
grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
3. 通过docker安装mysql
3.1 安装docker
没有安装docker的朋友可以点击这里查看docker安装指南(centos7安装docker)
3.2 拉取mysql镜像
- 还需要输入sudo运行docker命令的朋友可以点击这里查看如何不用sudo也能运行docker
docker pull mysql
,下载mysql最新镜像
3.3 运行mysql镜像
- 因为每次关闭mysql容器,容器里的改动和数据都会丢失,所以需要做持久化。
cd ~ mkdir mysql cd ./mysql mkdir conf logs data docker run -p 3307:3307 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql
新建mysql目录,在该目录下新建conf、logs、data目录,分别负责持久化mysql的配置、日志和数据文件
其中password
可以替换成自己的密码
-p,将centos的3307端口和容器的3307端口绑定
-v,挂载目录,用于持久化,以冒号:分割,$PWD/conf
指当前目录下的conf目录挂载到容器里的/etc/mysql/conf.d
目录
-e,设置容器环境变量,没有的话运行不了
-d,容器以daemon守护进程方式运行,也就是后台运行注意: 以后都要在这个mysql目录下运行这条run命令,不然docker会自动创建-v挂载的目录,这样就无法做到持久化的目的了,想省事的可以写个shell脚本。
3.4 查看mysql镜像
- ps命令可以查看运行中的容器,记住容器id的前几位
docker ps
3.5 进入mysql容器
- exec命令:在运行的容器中执行命令
docker exec -it 38447 /bin/bash
-i,保持STDIN打开
-t,分配一个伪终端
38447,上一步中ps查看到容器的id,不用输入整个容器id,只要前几位即可
/bin/bash,指运行容器的bash程序
运行该命令就可以愉快的跟容器进行交互啦
3.6 验证持久化
- 在容器里登录mysql
mysql -u root -p
,输入密码
进入容器成功后,可以看到用户变为root@容器id了- 创建一个
persistence
数据库
create database persistence;
- 输入
exit
退出容器- 输入
docker container stop 38447
关闭容器
- 再次运行容器
docker run -p 3307:3307 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql
进入容器并验证
持久化成功!