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/
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。
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
3、安装mysql数据库
yum -y install mysql-community-server
4、完成安装,重启mysql
systemctl restart mysqld
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
5、复制粘贴上边的密码进入数据库
mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
6、解决报错
以上报错是说新设置的密码过于简单,解决方式:
//首先按照默认密码格式复杂度更改
7、查看MySQL完整的初始密码规则
查看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)
8、修改MySQL默认策略和密码长度
1)修改密码策
因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_policy=LOW;
注:密码策略分四种
1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)
2)修改密码长度
上边改完策略之后我们在改长度 mysql> SET GLOBAL validate_password_length=4;
9、查看密码规则
都改完之后查看密码规则mysql> SHOW VARIABLES LIKE 'validate_password%';
10、改为简单密码
接下来就可以将刚才的复杂密码改为简单的四位的密码了;
11、卸载安装源自动更新
此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,因为当前数据库已安装完成,所以把这个卸载掉:
yum remove mysql57-community-release.noarch
12、初始化数据库
mysql_secure_installation
注:执行完初始化命令后需要输入数据库root用户密码,然后默认如上截图一路回车即可。(以上截图问题也可根据自己实际情况进行选择)