------------------MySQL数据库概述---------------------前端
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,mysql
每一个数据库都有一个或多个不一样的API用于建立,访问,管理,搜索和复制所保存的数据。sql
咱们也能够将数据存储在文件中,可是在文件中读写数据速度相对较慢。数据库
因此,如今咱们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。编程
RDBMS即关系数据库管理系统(Relational Database Management System)的特色:windows
1.数据以表格的形式出现服务器
2.每行为各类记录名称网络
3.每列为记录名称所对应的数据域数据结构
4.许多的行和列组成一张表单socket
5.若干的表单组成database
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。
MySQL 是开源的,因此你不须要支付额外的费用。
MySQL 支持大型的数据库。能够处理拥有上千万条记录的大型数据库。
MySQL 使用标准的SQL数据语言形式。
MySQL 能够运行于多个系统上,而且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL 对PHP有很好的支持,PHP是目前最流行的Web开发语言。
MySQL 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
MySQL 是能够定制的,采用了GPL协议,你能够修改源码来开发本身的 MySQL 系统。
------------------准备工做-------------------
第一种手工编译安装: 5.7版本源码包
百度网盘:连接:https://pan.baidu.com/s/1YusglC6yp-6tJ3vtGdvhww 密码:wwtc
Windows系统MySQL安装包:
百度网盘:连接:https://pan.baidu.com/s/1uAODxBNYk0hwTPqwyeKCfg 密码:scqp
第二种 yum源安装:
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了须要,仍是要在系统中安装MySQL,并且安装完成以后能够直接覆盖掉MariaDB。
(因为yum源上没有mysql-server。因此必须去官网下载,这里 咱们用wget命令,直接获取)wget -i -c
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
----------------MySQL手工编译安装-------------------
1.下载安装环境包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
2.建立mysql用户
useradd -s /sbin/nologin mysql
3.建立挂载点,进行挂载。
mkdir /abc
mount.cifs //172.16.10.100:/mysql /abc
PS:由于是虚拟机实验环境,挂载宿主机共享文件请参考https://blog.51cto.com/13767783/2155747
4查看下是否挂载成功,里面的压缩包
[root@localhost /]# cd /abc/mysql
[root@localhost mysql]# ls
boost_1_59_0.tar.gz mysql-5.7.17.tar.gz mysql-boost-5.7.20.tar.gz
5.解压缩文件
tar zxvf mysql-5.7.17.tar.gz -C /opt/
tar zxvf boost_1_59_0.tar.gz -C /usr/local/cd /usr/local/
mv boost_1_59_0 boost
6.到mysql-5.7.17文件中,进行cmake
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
------注意:若是在CMAKE的过程当中有报错,当报错解决后,须要把源码目录中的CMakeCache.txt文件删除,而后再从新CMAKE,不然错误依旧------------
7.编译安装
make && make install
8.更改mysql的属主属组为mysql,便于管理执行
cd /usr/local/
chown -R mysql.mysql /usr/local/mysql/
9.修改mysql配置文件
vi /etc/my.cnf
详解:
[client] #客户端区域
port = 3306 #端口号
default-character-set=utf8 #字符集
socket = /usr/local/mysql/mysql.sock #链接路径[mysql] #服务器区域
port = 3306 #端口号
default-character-set=utf8 #字符集
socket = /usr/local/mysql/mysql.sock #链接路径
#删除[mysqld]区域的所有配置内容,替换为下面
详解:
[mysqld] #mysqld区域配置
user = mysql #用户为mysql
basedir = /usr/local/mysql #mysql服务的目录
datadir = /usr/local/mysql/data #数据的目录
port = 3306 #端口
character_set_server=utf8 #字符集
pid-file = /usr/local/mysql/mysqld.pid #进程文件
socket = /usr/local/mysql/mysql.sock #链接3306端口的套接口文件
server-id = 1 #服务器标识号
#插入sql模式内容
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
修改完成后保存退出 。
10.修改mysql配置文件的属主属组
chown mysql:mysql /etc/my.cnf
11.追加环境变量文件
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
使系统环境变量生效
source /etc/profile
12.初始化数据库操做
cd /usr/local/mysql/
#5.7版本典型的初始化,生成一个空的密码,下面是指定用户,指定文件路径,指定数据文件路径。
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
13.使mysql.service可以被系统所识别和管理
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
开启服务,刷新使系统可以识别
systemctl daemon-reload
systemctl start mysqld
14.
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看服务端口是否开启
15.给root用户设置密码abc123
mysqladmin -u root -p password "abc123" #给root帐号设置密码为abc123提示输入的是原始密码。
#由于以前初始化时设置的是空密码,直接回车就好,下面的Warning是由于密码过于简单,由于是实验,因此不要紧。
16登陆mysql
mysql -u root –p
安装成功,登录成功。
------------------------受权远程登陆----------------------
在MySQL服务器中输入命令:
grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
#提高权限做用在第一个 * (表示是全部数据库) 第二个 * (表示是全部表)root(帐户) @(表明的是分割符)% (表明全部IP,网络终端)identified by“abc123”(赋予的密码)
在客户端Windows系统:
首先须要安装mysql
PS:
若是想要使得Windows系统中CMD命令字符界面识别mysql命令操做的话
步骤以下,复制mysql文件的bin文件路径,复制到个人电脑属性高级设置的系统环境变量中,找到PATH ,打开后,在path路径的最前端复制加入以前mysql文件的bin文件路径,路径后面,% 分割号前面加英文输入法格式下的 ; ,点击完成便可在cmd中操做mysql。
windows系统远程链接:mysql -h 【mysql数据库服务器的地址】-u root –p #远程登陆mysql数据库 服务器
便可在Windows远程链接
-----------------MySQL yum源安装方法---------------------
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了须要,仍是要在系统中安装MySQL,并且安装完成以后能够直接覆盖掉MariaDB。
(因为yum源上没有mysql-server。因此必须去官网下载,这里 咱们用wget命令,直接获取)wget -i -c
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl restart mysqld
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,经过以下命令能够在日志文件中找出密码:
grep "password" /var/log/mysqld.log
mysql -uroot -p
输入初始密码,此时不能作任何事情,由于MySQL默认必须修改密码以后才能操做数据库修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
以上报错是说新设置的密码过于简单,解决方式:
//首先按照默认密码格式复杂度更改
查看MySQL完整的初始密码规则,查看的前提是必须先用ALTER USER命令更改过密码(SHOW VARIABLES LIKE 'validate_password%';),
注:密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
1)修改密码策
由于当前的密码太复杂不方便后期作实验,因此使用命令修改密码策略两种方式:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_policy=LOW;
注:密码策略分四种
一、OFF(关闭) 二、LOW(低) 三、MEDIUM(中) 四、STRONG(强)
2)修改密码长度
上边改完策略以后咱们在改长度 mysql> SET GLOBAL validate_password_length=4;
都改完以后查看密码规则mysql> SHOW VARIABLES LIKE 'validate_password%';
接下来就能够将刚才的复杂密码改成简单的四位的密码了;
此时还有一个问题,就是由于安装了Yum Repository,之后每次yum操做都会自动更新,由于当前数据库已安装完成,因此把这个卸载掉:
yum remove mysql57-community-release.noarch
mysql_secure_installation注:执行完初始化命令后须要输入数据库root用户密码,而后默认如上截图一路回车便可。(以上截图问题也可根据本身实际状况进行选择)