1、MySQL官方发行版
MySQL是最流行的数据库,主要特点:
-
- 简单:MySQL使用很简单,任何稍微有IT背景的技术人员都可以无师自通地参照文档安装运行和使用MySQL,这几乎没有什么门槛。
- 开源:开源意味着流行和免费。- 支持多种存储引擎:MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
- 支持高可用架构:MySQL自身提供的replication(主从复制)功能可以实现MySQL数据的实时备份。
2、Mysql与存储引擎
- Mysql最常用的有两个存储引擎:MyISAM和InnoDB
- MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始,MySQL已将默认存储引擎从MyISAM更改为InnoDB。
两种存储引擎的大致区别表现在:
- InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中出错还可以回滚还原,而MyISAM就不可以了。
- MyISAM查询数据相对较快,适合大量的select,可以全文索引,InnoDB适合频繁修改以及涉及到安全性较高的应用.
- InnoDB支持外键,支持行级锁,MyISAM不支持
- MyISAM索引和数据是分开的,而且其索引是压缩的,缓存在内存的是索引,不是数据。而InnoDB缓存在内存的是数据,相对来说,服务器内存越大,InnoDB发挥的优势越大。
- InnoDB可支持大并发请求,适合大量insert、update操作。
关于MyISAM与InnoDB选择使用
- 如果应用程序一定要使用事务,毫无疑问要选择INNODB引擎。
- 如果应用程序对查询性能要求较高,就要使用MYISAM了。MYISAM拥有全文索引的功能,这可以极大地优化查询的效率。
SHOW ENGINES;
3、Percona Server分支
Percona Server由领先的MySQL咨询公司Percona发布。Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB。是最接近官方MySQLEnterprise发行版的版本。
Percona提供了高性能XtraDB引擎,还提供PXC高可用解决方案,并且附带了percona-toolkit等DBA管理工具箱。
4、 MariaDB
MariaDB由MySQL的创始人开发,MariaDB的目的是完全兼容MySQL,包括APl和命令行,使之能轻松成为MySQL的代替品。
MariaDB提供了MySQL提供的标准存储引擎,即MyISAM和lnnoDB,10.0.9版起使用XtraDB (名称代号为Aria)来代替MySQL的InnoDB。
5、如何选择
综合多年使用经验和性能对比,线上业务系统首选Percona分支,其次是MYSQL版本,最后是MariaDB。
6、二进制的方式安装mysql
从https://dev.mysql.com/downloads/ 下载需要的版本, 这里下载的是mysql-8.0.25,然后开始部署, 过程如下(依次执行即可):
[root@mysqlserver ~]# cd /usr/local/mysql
[root@mysqlserver ~]# xz -dmysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
[root@mysqlserver ~]# tar xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar
[root@mysqlserver ~]# mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql
[root@mysqlserver ~]# mkdir /usr/local/mysql/data #初始化数据
[root@mysqlserver ~]# mkdir /usr/local/mysql/etc #创建全局配置文件
[root@mysqlserver ~]# mkdir /usr/local/mysql/logs #mysql的日志信息
[root@mysqlserver ~]# useradd mysql #创建mysql用户
[root@mysqlserver ~]# vim /usr/local/mysql/etc/my.cnf #写入配置文件
[mysqld]
datadir=/usr/local/mysql/data #指定数据文件 socket=/tmp/mysql.sock log-error=/usr/local/mysql/logs/mysqld.log pid-file=/usr/local/mysql/logs/mysqld.pid [root@mysqlserver ~]# cd /usr/local/mysql [root@mysqlserver ~]# chown -R mysql:mysql /usr/local/mysql #授予权限 [root@mysqlserver ~]# bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data #进行初始化 [root@mysqlserver ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d [root@mysqlserver ~]# /etc/init.d/mysql.server start

进入mysql的密码在/var/log/mysqld.log里面:

编辑
进入mysql数据库,修改mysql数据库密码
alter user ‘root’@’localhost’ identified by ‘123456’;
7、 yum方式安装mysql
从 https://dev.mysql.com/downloads/ 下载yum源, 然后通过yum安装即可。
[root@nnmaster ~]# yum install mysql-server mysql mysql-common mysql-libs
或者从 http://mirrors.aliyun.com/mysql/MySQL-8.0/下载对应的rpm文件包安装也可。
安装完成后, 可直接启动mysql服务, 会自动初始化系统库以及启动相关服务。
systemctl start mysqld
mysql启动完成后, 会生成root用户的默认密码, 可从mysqld.log日志文件中获取临时的密码, 此密码可用于临时登录, 登录后, 需要马上修改为自己的新密码, 执行如下SQL命令:
SQL > alter user 'root'@'localhost' identified by 'root@mySQL123';
通过这个命令就修改了root用户的密码。
mysql yum安装的默认配置文件存放路径是/var/lib/mysql。日志文件在/var/log/mysqld.log
8、 使用docker安装mysql
首先, 需要安装docker引擎, 操作如下:
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master ~]# yum makecache fast
[root@master ~]# yum install docker-ce -y
[root@master~]# systemctl restart docker
[root@master ~]# systemctl enable docker
[root@master ~]# docker version
第二步:拉取mysql镜像
docker pull swr.cn-north-1.myhuaweicloud.com/iivey/mysql:8.0.23
第三步:运行docker镜像
docker run -itd -p 3306:3306--name mysql8 --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/mysql/db:/var/lib/mysql -eMYSQL_DATABASE="iivey" -e MYSQL_USER="iivey" -e MYSQL_PASSWORD="mysql123" -e MYSQL_ROOT_PASSWORD="root123" swr.cn-north-1.myhuaweicloud.com/iivey/mysql:8.0.23 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin
上面docker run命令中, /dockerdata/mysql/db路径是宿主机的路径,需要先创建好。




