第二百七十五节,MySQL数据库安装和介绍
MySQL数据库安装
一、概述
1、什么是数据库 ?
答:数据的仓库,称其为数据库
2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
答:他们均是一种软件,都有两个主要的功能:
a. 将数据保存到文件或内存
b. 接收特定的命令,然后对文件进行相应的操作
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
PS:如果有了以上软件,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System)
3、什么是SQL语句 ?
答:上述提到MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。SQL是结构化语言(Structured Query Language)的缩写,SQL是一种专门用来与数据库通信的语言。
二、下载安装MySQL数据库安
想要使用MySQL来存储并操作数据,则需要做几件事情:
a. 安装MySQL服务端
b. 安装MySQL客户端
b. 【客户端】连接【服务端】
c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
官方下载网址:http://dev.mysql.com/downloads/mysql/
Window版本安装
1、下载 ,MySQL Community Server 5.7.16版本
2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:E:\
解压后文件夹里的文件
安装和启动MySQL
MySQL解压后的 bin 目录下有一大堆的可执行文件
1、初始化
cmd以管理员身份运行
进入初始化目录
//在 cmd终端 输入 cd E:\mysql-5.7.16-winx64\bin C:\WINDOWS\system32>cd E:\mysql-5.7.16-winx64\bin
进入目录后初始化数据
//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysqld --initialize-insecure E:\mysql-5.7.16-winx64\bin>mysqld --initialize-insecure
注意:此时没有什么返回信息,查看E:\mysql-5.7.16-winx64目录下是否自动生成了data文件夹,如果生成了此文件夹并且文件夹里包含了数据,表示初始化成功
data文件夹里包含数据
启动MySQL服务
//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysqld E:\mysql-5.7.16-winx64\bin>mysqld
注意:此时cmd终端无法操作了,直接关闭cmd终端窗口
重新以管理员身份运行cmd终端进入E:\mysql-5.7.16-winx64\bin>目录
启动MySQL客户端并连接MySQL服务
由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码
//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysql -u root -p E:\mysql-5.7.16-winx64\bin>mysql -u root -p //Enter password: 提示请输入密码,直接回车
到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述 mysql
-
u root
-
p
步骤即可。但是,重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。
添加环境变量
将MySQL可执行文件添加到环境变量中,从而执行执行命令即可
【环境变量】
-
-
》【在第二个内容框中找到 变量名为Path 的一行,双击】
-
-
> 【将MySQL的
bin
目录路径追加到变值值中,用 ; 分割】
//如: C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin
如此一来,以后再启动服务并连接时不需要在进入bin目录了,仅需:
// 启动MySQL服务,在终端输入 mysqld // 连接MySQL服务,在终端输入: mysql -u root -p
将MySQL服务制作成windows服务
上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
// 制作MySQL的Windows服务,在终端执行此命令: "E:\mysql-5.7.16-winx64\bin\mysqld" --install // 移除MySQL的Windows服务,在终端执行此命令: "E:\mysql-5.7.16-winx64\bin\mysqld" --remove
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
// 启动MySQL服务 net start mysql // 关闭MySQL服务 net stop mysql
卸载mysql是cd到bin目录下执行mysqld --remove
检测安装,输入 mysql --version
输入exit退出
Linux版本安装
在线安装
安装:
yum install mysql-server
服务端启动
mysql.server start
客户端连接
//连接: mysql -h host -u user -p //常见错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running. //退出: QUIT 或者 Control+D
离线安装【推荐】
1、解压MySQL-5.7.16-Linux-glibc2.5-x86_64.tar.gz,并拷贝到/usr/local/mysql目录下
解压:
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
拷贝:
sudo cp -r mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
2、添加系统mysql组和mysql用户
添加系统mysql组
sudo groupadd mysql
添加mysql用户
sudo useradd -r -g mysql mysql
添加完成后可用id mysql
查看
3、安装数据库
切换到/usr/local/mysql目录
cd /usr/local/mysql
修改当前目录拥有者为mysql用户
sudo chown -R mysql:mysql ./
安装数据库(5.7版本的安装已经不建议使用mysql_install_db 来安装,而是使用mysqld)
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
临时密码:xk?hs6OhU
执行以下命令创建RSA private key
sudo bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
修改当前目录拥有者为root用户
sudo chown -R root:root ./
修改当前data目录拥有者为mysql用户
sudo chown -R mysql:mysql data
4、配置my.cnf和开机启动
cd support-files sudo cp my-default.cnf /etc/my.cnf sudo cp mysql.server /etc/init.d/mysql sudo vim /etc/init.d/mysql ##修改basedir= 自己的路径 修改datadir= 自己的路径
修改完毕后:wq!
保存并退出vi
vi命令:
按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并退出vi :wq! 强制保存文件,并退出vi q: 不保存文件,退出vi :q! 不保存文件,强制退出vi :e! 放弃所有修改,从上次保存文件开始再编辑
修改my.cnf
sudo vim /etc/my.cnf
[mysqld] character-set-server=utf8 datadir=/home/mysql/mysqldata basedir=/usr/local/mysql socket=/var/lib/mysql/mysql.sock
保存并退出
5、启动mysql
service mysql start
登录mysql,并设置远程连接
mysql -u user -p GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; flush privileges;