数据库的种类:
1.关系型数据库(RDBMS):
MySQL,Oracle,MSSQL(SQLserver)
2.非关系型数据库(NoSQL):
Redis,Memcache,MongoDB,elasticsearch
MySQL的版本选择潜规则:
MySQL5.6:
1.选择GA 6-12个月
2.小版本号为偶数版
MySQL5.7
1.选择GA 6-12个月
2.小版本号为偶数版
3.MySQL5.7.17以上版本 MGR
1.安装源码版
1.解压
[root@db01 ~]# tar xf mysql-5.6.40.tar.gz
2.进入目录
[root@db01 ~]# cd mysql-5.6.40
[root@db01 mysql-5.6.40]# ll
3.生成编译文件
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.40 \
-DMYSQL_DATADIR=/usr/local/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.40/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
#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.38/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
#使用utf8字符集
-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 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0
4.编译
make
5.安装
make install
安装二进制版
二进制安装后需要先将解压完的文件移动到/usr/local/mysql-5.6.40
mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.40
6.进入mysql程序目录
[root@db02 ~]# cd /usr/local/mysql-5.6.40/
7.创建mysql系统用户
[root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M
8.进入配置文件及脚本目录
[root@db02 mysql-5.6.40]# cd support-files/
9.拷贝配置文件到etc
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
10.拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
11.进入初始化目录
[root@db01 mysql-5.6.40]# cd /usr/local/mysql-5.6.40/scripts/
12.初始化数据库
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.6.40 --datadir=/usr/local/mysql-5.6.40/data
13.做软连接
[root@db02 scripts]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql
14.启动mysql
[root@db02 scripts]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/db02.err'.
. SUCCESS!
15.添加环境变量
[root@db02 scripts]# vim /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"
16.加载环境变量
[root@db02 scripts]# source /etc/profile
17.授权
[root@db01 scripts]# chown -R mysql.mysql /usr/local/mysql*
18.连接mysql
[root@db02 scripts]# mysql
19.设置mysql密码
[root@db02 scripts]# mysqladmin -uroot -p password 123
20.连接mysql
[root@db01 scripts]# mysql -uroot -p123
安装源码版的时候:
注意:
如果报错可以去 tail -100 /usr/local/mysql/data/db02.err这里查看报错
mysql基础优化:
1.删除 没有用的库
mysql> show databases;
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
2.删除没有用的用户
mysql> select user,host from mysql.user;
mysql> drop user root@'::1';
Query OK, 0 rows affected (0.00 sec)
mysql> delete from mysql.user where user='root' and host='db01';
配置多个数据库实现主从复制时数据库的配置:
[root@db01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
配置时注意IP和网关:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.51"
PREFIX="24"
GATEWAY="10.0.0.2"
DNS1="223.5.5.5"
Linux换源:(阿里云)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y lrzsz
虚拟机优化:
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld
[root@db01 mysql-5.6.40]# getenforce 查看数据库的安全权限
[root@db01 mysql-5.6.40]# setenforce 0 修改安全权限,不修改很多东西不能实现
[root@db03 ~]# vim /etc/sysconfig/selinux 修改上述的权限,配置文件中修改,永久修改,上面只是临时的
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 这条命令是不进入文件替换配置文件