MySQL-5.6.38 安装部署及介绍

第1章 MySQL简介及部署

1.1 介绍

1.1.1 什么是数据

数据是指对客观事件进行记录并能够鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。php


1.1.2 数据库管理系统种类---关系型

优势:mysql

强大的查询功能c++

强一致性redis

二级索引sql

RDBMS:Oracle、MySQL、mssql(SQL Server)、PG(postgresql)mongodb

适用场景:数据安全性要求较高的应用场景数据库


1.1.3 数据库管理系统种类---非关系型

优势:安全

灵活模式app

扩展性ide

性能

NoSQL:redis、mongodb、memcache、Hbase、neo4j

适用场景:针对性能要求较高,数据安全性要求不是过高的场景,通常是配合RDBMS使用的产品


1.2 MySQL部署

1.2.1 安装方式

一、 rpm或yum安装:安装方便、安装速度快、没法定制

二、 二进制:不须要安装,解压便可使用,不能定制功能

三、 编译安装:可定制,安装速度慢 (5.5版本以前:./configure make make install | 5.5以后:cmake gmake)


1.2.2 编译安装
1.2.3 安装环境准备

系统版本:Linux Centos-6.9 2.6.32-696.23.1.el6.x86_64

MySQL软件版本:5.6.38

IP地址与主机名:10.0.0.51 db01


1.2.4 MySQL软件包获取方式

https://downloads.mysql.com/archives/community/ #官网下载


1.2.5 开始安装

(1) 安装依赖包:

yum install -y ncurses-devel libaio-devel gcc-c++ gcc ncurses-devel freeglut-devel


(2) 安装cmake

yum install -y cmake


(3) 建立mysql用户,用来管理mysql

useradd -s /sbin/nologin -M mysql


(4) 解压软件包

tar xf mysql-5.6.38.tar.gz


(5) 开始编译安装


cd mysql-5.6.38              #<====进入解压后的目录


cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \

-DMYSQL_DATADIR=/application/mysql-5.6.38/data \

-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0


make && make install #<======编译安装

#===================================

Cmake 作了什么?

一、作了些预配置

二、影响了编译后的程序(编译过程会将cmake指定的配置信息硬编码到程序文件中)

mysqld

mysql

mysql_install_db

mysqldump

mysqladmin

mysqld_safe

等。

#=====================================


ln -s /application/mysql-5.6.38/ /application/mysql          #<====建立安装目录的软连接

cp support-files/my*.cnf /etc/my.cnf         #<===复制my.conf到etc目录下


#==================

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql #<=====初始化数据库

#==================

chown -R mysql.mysql /application/mysql/ #<====修改软件路径归属

cp support-files/mysql.server /etc/init.d/mysqld #<===拷贝启动脚本到Sys-v模式目录

chmod 700 /etc/init.d/mysqld

/etc/init.d/mysqld start #<======启动数据库

netstat -lntup|grep 3306 #<======检查服务端口号

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile #<=====添加环境变量

source /etc/profile


mysql    #【回车】#启动mysql数据库,首次启动没有密码

++++++++++++++++++++++++++++++拓展部分+++++++++++++++++++++++++++++++++++++

修改密码:

1.例如你的 root用户如今没有密码,你但愿的密码修改成123456,那么命令是:

mysqladmin -u root password 123456


2.若是你的root如今有密码了(123456),那么修改密码为abcdef的命令是:

mysqladmin -u root -p password abcdef

注意,命令回车后会问你旧密码,输入旧密码123456以后命令完成,密码修改为功。


3.若是你的root如今有密码了(123456),那么修改密码为abcdef的命令是:

mysqladmin -u root -p123456 password abcdef (注意-p 不要和后面的密码分

开写,要写在一块儿,否则会出错,错误以下所示)


4.使用phpmyadmin,这是最简单的了,修改mysql库的user表,

不过别忘了使用PASSWORD函数。

忘记密码:

下面咱们提供了6种不一样的修改mysql root用户的密码,与增长mysql用户的方法。


方法一

使用phpmyadmin,这是最简单的了,修改mysql库的user表,

不过别忘了使用PASSWORD函数。


方法二

使用mysqladmin,这是前面声明的一个特例。

mysqladmin -u root -p password mypasswd

输入这个命令后,须要输入root的原密码,而后root的密码将改成mypasswd。

把命令里的root改成你的用户名,你就能够改你本身的密码了。

固然若是你的mysqladmin链接不上mysql server,或者你没有办法执行mysqladmin,

那么这种方法就是无效的。

并且mysqladmin没法把密码清空。

下面的方法都在mysql提示符下使用,且必须有mysql的root权限:


方法三

mysql> INSERT INTO mysql.user (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES

确切地说这是在增长一个用户,用户名为jeffrey,密码为biscuit。

在《mysql中文参考手册》里有这个例子,因此我也就写出来了。

注意要使用PASSWORD函数,而后还要使用FLUSH PRIVILEGES。


方法四

和方法三同样,只是使用了REPLACE语句

mysql> REPLACE INTO mysql.user (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES


方法五

使用SET PASSWORD语句,

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');

拟也必须使用PASSWORD()函数,

可是不须要使用FLUSH PRIVILEGES。


方法六

使用GRANT ... IDENTIFIED BY语句

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';

这里PASSWORD()函数是没必要要的,也不须要使用FLUSH PRIVILEGES。

注意: PASSWORD() [不是]以在Unix口令加密的一样方法施行口令加密。

MySQL 忘记口令的解决办法

若是 MySQL 正在运行,首先杀之: killall -TERM mysqld。

启动 MySQL :bin/safe_mysqld --skip-grant-tables &

就能够不须要密码就进入 MySQL 了。

而后就是

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;

从新杀 MySQL ,用正常方法启动 MySQL 。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章
相关标签/搜索