一、关系型数据库基础
1、数据的分类
结构化的数据 非结构化的数据 半结构化数据
2、关系型数据库 RDBMS
(1)常用关系数据库
MySQL: MySQL, MariaDB, Percona Server
PostgreSQL: 简称为pgsql,EnterpriseDB Oracle MSSQL Server DB2 3、数据库的正规化分析(1)第一范式
无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有 多个值或者不能有重复的属性,确保每一列的原子性。除去同类型的字段,就是无重复的列(2)第二范式
第二范式必须先满足第一范式,属性完全依赖于主键,要求表中的每个行必须可以被唯一地区分,通常 为表加上每行的唯一标识主键PK,非PK的字段需要与整个PK有直接相关性,即非PK的字段不能依赖于部 分主键(3)第三范式
满足第三范式必须先满足第二范式属性,非主键属性不依赖于其它非主键属性。第三范式要求一个数据 表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系二、安装MySQL
1、mysql三大分支
MySQL https://www.mysql.com/ Mariadb http://mariadb.org/ Percona Server https://www.percona.com 官方文档: https://dev.mysql.com/doc/ https://mariadb.com/kb/en/ https://www.percona.com/software/mysql-database/percona-server 2、安装方式 程序包管理器管理的程序包 源代码编译安装 二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用 3、RPM包安装MySQLCentOS 安装光盘
项目官方:https://downloads.mariadb.org/mariadb/repositories/ 国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/ https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/ CentOS 8:安装光盘直接提供 mysql-server:8.0 mariadb-server : 10.3 CentOS 7:安装光盘直接提供 mariadb-server:5.5 服务器包 mariadb 客户端工具包 4、初始化脚本提高安全性 5.6版本 运行脚本:mysql_secure_installation 设置数据库管理员root口令 禁止root远程登录 删除anonymous用户帐号 删除test数据库 三、MySQL 组成和常用工具 1、客户端程序 mysql: 基于mysql协议交互式或非交互式的CLI工具 mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成 insert等写操作语句保存文本文件中 mysqladmin:基于mysql协议管理mysqld mysqlimport:数据导入工具 MyISAM存储引擎的管理工具: myisamchk:检查MyISAM库 myisampack:打包MyISAM表,只读 2、服务器端程序 mysqld_safe mysqld mysqld_multi 多实例 ,示例:mysqld_multi --example 3、用户账号 mysql用户账号由两部分组成: 'USERNAME'@'HOST' wang@'10.0.0.100' wang@'10.0.0.%' wang@'%' 4、mysql命令使用格式 mysql [OPTIONS] [database]5、服务器端配置文件
四、通用二进制格式安装 MySQL8.0
1、安装相关包
yum -y install libaio numactl-libs ncurses-compat-libs2、创建用户和组
groupadd mysql useradd -r -g mysql -s /bin/false mysql
3、准备程序文件
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.31-linuxglibc2.12-x86_64.tar.gz tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local cd /usr/local/ ln -s mysql-5.7.31-linux-glibc2.12-x86_64/ mysql chown -R root.root /usr/local/mysql/
4、准备环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh
5、准备配置文件
cp /etc/my.cnf{,.bak} vim /etc/my.cnf [mysqld] datadir=/data/mysql skip_name_resolve=1 socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock
6、初始化数据库文件并提取root密码
#/data/mysql 会自动生成,但是/data/必须事先存在 mkdir -pv /data/mysql
7、密码
生成随机密码
mysqld --initialize --user=mysql --datadir=/data/mysql grep password /data/mysql/mysql.log
生成空密码
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql
8、准备服务脚本和启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld service mysqld start
9、修改口令
#修改前面生成的随机密码为指定密码 mysqladmin -uroot -p'LufavlMka6,!' password magedu #修改前面生成的空密码为指定密码 mysqladmin -uroot password magedu
五、基于DOCKER容器创建MYSQL
#docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30 #mysql -uroot -p123456 -h127.0.0.1
六、MYSQL多实例安装
1、多实例常见的配置方案
单一的配置文件、单一启动程序多实例部署方式 多配置文件、多启动程序部署方式 2、安装mariadb/mysqlyum -y install mariadb-server
3、准备三个实例的目录
mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid} chown -R mysql.mysql /mysql tree -d /mysql/
4、生成数据库文件
mysql_install_db --user=mysql --datadir=/mysql/3306/data mysql_install_db --user=mysql --datadir=/mysql/3307/data mysql_install_db --user=mysql --datadir=/mysql/3308/data
5、准备配置文件
#vim /mysql/3306/etc/my.cnf [mysqld] port=3306 datadir=/mysql/3306/data socket=/mysql/3306/socket/mysql.sock log-error=/mysql/3306/log/mysql.log pid-file=/mysql/3306/pid/mysql.pid#重复上面步骤设置3307,3308 [root@centos8 ~]#sed 's/3306/3307/' /mysql/3306/etc/my.cnf > /mysql/3307/etc/my.cnf [root@centos8 ~]#sed 's/3306/3308/' /mysql/3306/etc/my.cnf > /mysql/3308/etc/my.cnf
6、准备启动脚本
vim /mysql/3306/bin/mysqld 略..
#增加执行权限 chmod +x /mysql/3306/bin/mysqld
7、启动、关闭服务
/mysql/3306/bin/mysqld start/mysql/3308/bin/mysqld stop
8、登录实例
mysql -h127.0.0.1 -P3308 mysql -uroot -S /mysqldb/3306/socket/mysql.sock
9、修改root密码
mysqladmin -uroot -S /mysql/3306/socket/mysql.sock password '***' 10、开机启动vi /etc/rc.d/rc.local #在最后一行加下面内容 for i in {3306..3308};do /mysql/$i/bin/mysqld start;done [root@centos8 ~]#chmod +x /etc/rc.d/rc.local
标签:入门,etc,--,Mysql,第十九,mysqld,mysql,3306,data From: https://www.cnblogs.com/dujy/p/18012790