2-14 MySQL初步认识,及CentOS6.8环境,源码方式安装MySQL

什么是数据库: 存放数据的仓库
RDBMS-->(Relational Database Management System) 关系型数据库管理系统
DBMS--->(Database Managerment System) 数据库管理系统

数据库分类:
1. 关系型数据库
2. 非关系型数据库
常用关系型数据库:
Oracle,MySQL,MariaDB,SQL Server,Access,PostgreSQL,DB2,Informix,Sybase
PostgreSQL 自由的对象-关系数据库服务器(数据库管理系统),有非常活跃的开发队伍(黑客支持)
常用非关系型数据库:
Memcache,Redis,MongoDB,Cassandra
其他不常用非关系型数据库:
HBase、MemacheDB、BerkeleyDB、Tokyo Cabinet

##################################################
##################################################
##################################################
MySQL

MySQL是一种关系型数据库管理系统,
由瑞典MySQL AB公司开发,目前属于Oracle公司

特点:
1. mysql性能卓越,服务稳定,很少出现异常宕机
2. mysql开源免费,无版权制约,自主性及使用成本低
3. 产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php
4. 技术积累,庞大的活跃的社区,
5. 软件体积小,安装简单,易于维护
URL:http://www.mysql.com/

MySQL采用双授权政策
社区版和商业版
又被细分为Alpha,Beta,RC,GA版本
GA为正式版

社区版,企业版区别--->
1. 价格, 社区版免费,企业版高额费用
2. 技术, 企业版具有MySQL企业级服务器,系统监控工具,经过严格的测试认证
社区版没有那么严格
3. 服务, 社区版不提供技术支持,企业版反之
4. 协议, 商业版不支持GPL协议

产品线路:
1. 5.0.XX - 5.1.XX 系列
这条产品线继续完善改进用户体验和性能,
同时增加新功能,是mysql早期产品的延续,
如rhel6自带的mysql
2. 5.4.XX - 5.7.XX 系列
mysql社区和第三方公司percona整合的,
吸收新的算法和存储引擎
3. 6.0.XX - 7.X.XX 系列
主要是为了更好的推广MySQL Cluster版本,
提供Cluster版本的性能和稳定性,
这个版本比较少公司用,原因是出来太晚了

MySQL安装:
Way 1: rpm/yum安装
#使用二进制方式安装,开发商针对不同的操作系统和环境穿件的rpm包,通过下载直接安装
rpm -ivh *.rpm
yum -y install mysql-server
# mysql 为客户端登录程序
# mysql-server 数据库服务器

Way 2: 源码编译安装
tar ---> cmake ---> make ---> make install

Way 3: 批量部署, src.rpm 通过spec文件
# 没研究过

源码编译安装 MySQL 5.5.32
# 对于不通版本源码编译方法不一
# 对于mysql 5.1 系列 不需要使用cmake
# ./configure --> make --> make install
1. 安装编译工具 cmake
yum -y install cmake gcc gcc-c++
# cmake 依赖c语言 需安装Linux下的C编译工具 gcc gcc-g++/C++

2. 下载 MySQL
# 去官网下载
wget http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.32.tar.gz
解压到指定目录
tar -zxf mysql-5.5.32.tar.gz -C /usr/local/src
3. 解决以来
yum -y install cmake ncurses-devel #用于终端操作的开发包
4. 创建MySQL用户
useradd -u 8001 -M -s /sbin/nologin mysql
# -u 8001 指定UID, -M 不创建宿主目录, -s /sbin/nologin 禁止登录
5. 创建数据库存放目录
mkdir /data # 便于挂载,
# 推荐将数据库数据文件与系统分盘或分区存放,避免IO影响
6. 编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWIHT_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
参数解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装目录为/usr/local/mysql
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #指定套接字文件为mysql.sock 通信文件
-DDEFAULT_CHARSET=utf8 #指定字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci #指定字符校对
-DMYSQL_EXTRA_CHARSETS=all #扩展字符支持 默认all
-DWITH_storage_STORAGE_ENGINE=1 #开启存储storage引擎支持
# storage=MyISAM,Innobase,MEMORY,CVS等
-DWITH_READLINE=1 #开启READLINE模式
-DWITH_LOCAL_INFILE=1 #启动加载本地数据引擎
-DMYSQL_DATADIR=/data #指定数据存储目录
-DMYSQL_USE=mysql #指定运行用户
扩展:
-DWITH_PARTITION_STORAGE_ENGINE=1 #支持分区表
-DINSTALL_LIBDIR=dir_name #指定库文件安装目录
-DSYSCONFDIR=dir_name #指定默认配置文件存放路径
# 默认配置文件为my.cnf
7. 安装
make -j 4 && make install # -j 4 指定4个线程完成本操作,不指定默认为1
8. 授权用户
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data
chmod 1777 /tmp
9. 创建配置文件
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
10. 设置环境变量 #为了以后便于敲命令,不用带路径了
echo ‘PATH=/usr/local/mysql/bin:$PATH‘ >> /etc/profile
source $! # $! = 上一条指令最后一个参数
11. 创建启动脚本
拷贝启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
添加脚本可执行权限
chmod + x $!
设置脚本mysql安装目录和数据目录
sed -i "s%^basedir=%basedir=/usr/local/mysql%g" /etc/init.d/mysqld
sed -i "s%^datadir=%datadir=/data%g" /etc/init.d/mysqld
添加脚本chkconfig
chkconfig --add mysqld
添加开机启动
chkconfig mysqld on
12. 初始化数据库
在运行数据库之前,需要初始化一下数据
chmod +x /usr/local/mysql/scripts/mysql_install_db
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf
--basedir=/usr/local/mysql --datadir=/data --user=mysql

# 如果在初始化之前运行了数据库,会报错如下:
[[email protected] ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/xiaogan63.cn.pid).
#
[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf--basedir=/usr/local/mysql --datadir=/data --user=mysql

TAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to run ‘make install‘ to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
# 没有设置环境变量

[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf--basedir=/usr/local/mysql --datadir=/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK

成功!

因为启动脚本错了
sed -i 命令错误替换了字符串导致,mysqld服务无法启动
错误如下:
[[email protected] ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/xiaogan63.cn.pid)
重新拷贝配置文件,并修改如下:
sed -i "s%^basedir=%basedir=/usr/local/mysql%g" /etc/init.d/mysqld
sed -i "s%^datadir=%datadir=/data%g" /etc/init.d/mysqld
替换字符串少了一个符号 ^

[[email protected] ~]# grep "^basedir=" /etc/init.d/mysqld -R --color
basedir=/usr/local/mysql
[[email protected] ~]# grep "^datadir=" /etc/init.d/mysqld -R --color
datadir=/data
[[email protected] ~]#
[[email protected] ~]# grep "basedir=" /etc/init.d/mysqld -R --color
# basedir=<path-to-mysql-installation-directory>
basedir=/usr/local/mysql
basedir=/usr/local/mysql
# *not* set inside of the --basedir= handler.)
--basedir=*) basedir=`echo "$arg" | sed -e ‘s/^[^=]*=//‘`
[[email protected] ~]# grep "datadir=" /etc/init.d/mysqld -R --color
datadir=/data
datadir=/data
datadir="$basedir/data"
datadir="$basedir/data"
--datadir=*) datadir=`echo "$arg" | sed -e ‘s/^[^=]*=//‘`
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
[[email protected] ~]#

13. 初始化安全配置
mysql_secure_installation #安全初始化配置

# 如果没有运行mysqld服务,则会报错如下:
[[email protected] ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we‘ll need the current
password for the root user. If you‘ve just installed MySQL, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
需将服务启动即可

Enter current password for root (enter for none): #直接回车即可
OK, successfully used password, moving on...

Set root password? [Y/n] y # 设置root密码
# 输入两次密码
... Success!
Remove anonymous users? [Y/n] y # 移除匿名用户
... Success!
Disallow root login remotely? [Y/n] y #禁止root远程登录
... Success!
Remove test database and access to it? [Y/n] y #删除测试数据库
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y # 重新加载授权表
... Success!
All done! If you‘ve completed all of the above steps, your MySQL
installation should now be secure.

14. 安全优化小配置:
用户安装:
mysql> select user,host from mysql.user;
# 只留下root用户的localhost和127.0.0.1;
mysql> delete from mysql.user where user=‘‘;

我们还可以删除所有用户,并重新创建一个超级管理员,操作如下:
删除所有用户
mysql> delete from mysql.user;
授权所有权限给[email protected]‘localhost‘
mysql> grant all privileges on *.* to [email protected]‘localhost‘ identified by
‘yourpasswd‘ with grant option;
使配置生效
mysql> flush privileges;
查看
mysql> select user,host from mysql.user;

时间: 2024-11-19 11:48:59

2-14 MySQL初步认识,及CentOS6.8环境,源码方式安装MySQL的相关文章

Linux下基于源码方式安装MySQL 5.6

MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文描述了如何在源码方式下安装MySQL. 1.安装环境及介质#安装环境SZDB:~ # cat /etc/issueWelcome to SUSE Linux Enterprise Server 10 SP3

Linux CentOS6.5下 源码编译安装MySQL 5.6.16【给力详细教程】

一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装 wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./bootstrap ; make ; make i

源码方式安装mysql&#160;5.6.15

MySql主从安装1 环境介绍 操作系统:Oracle Linux Server release 6.22 安装软件采用源码安装方式1. mysql安装包:mysql-5.6.15.tar.gzMysql 下载地址:http://dev.mysql.com/downloads/2.  Cmake安装包mysql5.5以后是通过cmake来编译的wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz 3 删除Oracle Linux自带的My

Centos6.5系统源码方式安装Subversion1.9.5

一.简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的. 二.运行方式 svn服务器有2种运行方式:独立服务器和借助apache运行.两种方式各有利弊,用户可以自行选择. 三.软件包 1.subversion 下载地址:http://mirrors.cnnic.cn/apac

CentOS 6.6 下源码编译安装MySQL 5.7.5

版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# yum -y install gcc-c++ ncurses-devel cmake make perl \ gcc autoconf automake zlib libxml libgcrypt libtool bison2. 清理环境检查boost版本: # rpm -qa boost*卸载b

linux学习笔记——源码编译安装Mysql

#######Redhat6.5源码编译安装Mysql########实验环境:1.IP:172.25.8.32.磁盘要大于20G先添加一块大于20G的磁盘fdisk /dev/vdb        ##得到/dev/vdb1 8e linuxpvcreate /dev/vdb1    ##把物理分区做成物理卷vgextend vg_server1 /dev/vdb1    ##把新建立的/dev/vdb1添加到vg_server1中lvextend -L 20G /dev/vg_server1

CentOS源码编译安装MySQL 5.5.15

CentOS源码编译安装MySQL 5.5.15 文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install gcc gcc-c++ yum install ncurses-devel 下载源码 mkdir -p /tmp cd /tmp wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.

CentOS 6.5源码包安装MySQL

#源码包安装MySQL数据库 [[email protected] ]# yum -y install gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison perl curl-devel #安装MySQL [[email protected] cmake-3.0.2]# groupadd -r mysql [[email protecte

CentOS6.5 从源码编译安装 GCC-4.9.1 全程实录《第二部分:编译,安装,测试》

前言 GCC(GNU Compiler Collection,GNU编译器合集)是linux以及其他类UNIX平台上进行开源项目,软件开发等必不可少的工具链组成之一(工具链的其他成员包括 binutils,Glibc,libstdc++ 等) 另 外,对于程序员以及系统管理员而言,经常需要从软件的源码手动编译安装,而不论是configure脚本,还是make工具/makefile文件,最终 都需要调用gcc(或者其它编译器)来进行实际的编译工作,因此,经常需要使用gcc的新版特性,并且与旧版gc