Centos 7——安装MySQL #两种安装,两种密码设定,以及 远程连接(新手详解)



------------------MySQL数据库概述---------------------

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现

  • 2.每行为各种记录名称

  • 3.每列为记录名称所对应的数据域

  • 4.许多的行和列组成一张表单

  • 5.若干的表单组成database


MySQL数据库

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:因为是虚拟机实验环境,挂载宿主机共享文件请参考http://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/

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维


9.修改mysql配置文件

vi /etc/my.cnf

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_02

详解:

[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]区域的全部配置内容,替换为下面

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_03

详解:

[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

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_04

修改完成后保存退出 。


10.修改mysql配置文件的属主属组

chown mysql:mysql /etc/my.cnf

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_05


11.追加环境变量文件

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_06

使系统环境变量生效

source /etc/profile

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_07


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/

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_08

开启服务,刷新使系统能够识别

systemctl daemon-reload
systemctl start mysqld


14.

systemctl enable mysqld    #开机自启动

netstat -anpt | grep 3306   #查看服务端口是否开启

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_09


15.给root用户设置密码abc123

mysqladmin -u root -p password "abc123"       #给root账号设置密码为abc123提示输入的是原始密码。

#因为之前初始化时设置的是空密码,直接回车就好,下面的Warning是因为密码过于简单,因为是实验,所以没关系。

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_10


16登录mysql

mysql -u root –p

安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_11

安装成功,登陆成功。


------------------------授权远程登录----------------------

在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。

1、安装mysql

(由于yum源上没有mysql-server。所以必须去官网下载,这里 我们用wget命令,直接获取)wget -i -c
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2、安装mysql的依赖包

yum -y install mysql57-community-release-el7-10.noarch.rpm
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_12

3、安装mysql数据库

yum -y install mysql-community-server
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_13
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_数据库_14

4、完成安装,重启mysql

systemctl restart mysqld
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_15
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_MySQL_16

5、复制粘贴上边的密码进入数据库

mysql -uroot -p
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_17
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_18

6、解决报错

以上报错是说新设置的密码过于简单,解决方式:
//首先按照默认密码格式复杂度更改
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_19

7、查看MySQL完整的初始密码规则

查看MySQL完整的初始密码规则,查看的前提是必须先用ALTER USER命令更改过密码(SHOW VARIABLES LIKE 'validate_password%';),
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_MySQL_20
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_数据库_21
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_22
注:密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

8、修改MySQL默认策略和密码长度

1)修改密码策
因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:
mysql> set global validate_password_policy=0;
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_源码包_23
mysql> set global validate_password_policy=LOW;
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_24
注:密码策略分四种
1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)

2)修改密码长度
上边改完策略之后我们在改长度 mysql> SET GLOBAL validate_password_length=4;
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_数据库_25

9、查看密码规则

都改完之后查看密码规则mysql> SHOW VARIABLES LIKE 'validate_password%';
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_Linux_26

10、改为简单密码

接下来就可以将刚才的复杂密码改为简单的四位的密码了;
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_27

11、卸载安装源自动更新

此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,因为当前数据库已安装完成,所以把这个卸载掉:
yum remove mysql57-community-release.noarch
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_MySQL_28

12、初始化数据库

mysql_secure_installation
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_MySQL_29
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_系统/运维_30
安装MySQL yum源安装与手工编译安装【内附5.7版本官网下载路径和5.7版本源码包】_数据库_31
注:执行完初始化命令后需要输入数据库root用户密码,然后默认如上截图一路回车即可。(以上截图问题也可根据自己实际情况进行选择)