MySQL
MySQL简介
MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。
但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社群们对于Oracle是否还会持续支持MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库[6]。
关系型数据库
关系数据库(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
MySQL特性
MySQL是一种使用广泛的数据库,特性如下:
- 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性"color: #ff0000">linux (CentOS7.5_x86_64)下安装mysql8.0
# 下载mysql $ wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-el7-x86_64.tar.gz # 解压 $ mysql tar -zxvf mysql-8.0.4-rc-linux-glibc2.12-x86_64.tar.gz -C /usr/local # 修改文件夹名称 $ mv mysql-8.0.4-rc-linux-glibc2.12-x86_64/ mysql 添加默认配置文件 $ vim/etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 user=mysql socket=/tmp/mysql.sock basedir=/usr/local/mysql datadir=/usr/local/mysql/data # 创建mysql组 $ groupadd mysql # 创建mysql用户 $ useradd -g mysql mysql # 创建mysql数据目录 $ mkdir $MYSQL_HOME/data # 初始化mysql $ /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ # 初始化报错 bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory # 解决方法 yum install -y libaio # 初始化报错 2018-07-08T02:53:24.542370Z 0 [System] [MY-010116] /usr/local/mysql/bin/mysqld (mysqld 8.0.4-rc) starting as process 17745 ... mysqld: Can't create/write to file '/tmp/mysql/data/ibd35qXQ' (Errcode: 13 - Permission denied) 2018-07-08T02:53:24.554816Z 1 [ERROR] [MY-011066] InnoDB: Unable to create temporary file; errno: 13 2018-07-08T02:53:24.554856Z 1 [ERROR] [MY-011066] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again. 2018-07-08T02:53:24.555000Z 0 [ERROR] [MY-010020] Data Dictionary initialization failed. 2018-07-08T02:53:24.555033Z 0 [ERROR] [MY-010119] Aborting 2018-07-08T02:53:24.555919Z 0 [System] [MY-010910] /usr/local/mysql/bin/mysqld: Shutdown complete. # 解决办法:修改/tmp/mysql的目录权限 $ chown -R mysql:mysql /tmp/mysql # 初始化成功 > 如果无异常情况日志如下可以看到mysql默认会生成root账号和密码root@localhost: /TI(mjVAs1Ta [root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2019-01-29T10:19:34.023997Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 4240 2019-01-29T10:19:39.764895Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /TI(mjVAs1Ta 2019-01-29T10:19:43.041419Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed # 拷贝mysql启动文件到系统初始化目录 $ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 启动mysql服务器 $ service mysqld start
mysql 基本操作
# 使用mysql客户端连接mysql $ /usr/local/mysql/bin/mysql -u root -p password 修改mysql的默认初始化密码 > alter user 'root'@'localhost' identified by 'root'; # 创建用户 CREATE USER '用户名称'@'主机名称' INDENTIFIED BY '用户密码' > create user 'jack'@'localhost' identified by 'jack'; # 授予权限 grant 权限 on 数据库.表 to '用户名'@'登录主机' [INDENTIFIED BY '用户密码']; > grant replication slave on *.* to 'jack'@'localhost'; # 刷新 # $ flush privileges; # 修改root用户可以远程连接 > update mysql.user set host='%' where user='root'; # 查看mysql所用用户 > select user,host from mysql.user; # docker 修改mysql的最大连接数 apt-get update apt-get install vim vim /etc/mysql/mysql.conf.d/mysqld.cnf max_connections=1000 > alter user 'root'@'%' identified with mysql_native_password by 'root';
mysql 集群主从复制
准备两台安装好的mysql服务器
# 配置主服务添加如下配置 $ vim /etc/my.cnf # 节点唯一id值 server-id=1 # 开启二进制日志 log-bin=mysql-bin # 指定日志格式 有mixed|row|statement 推荐mixed binlog-format=mixed # 步进值auto_imcrement。一般有n台主MySQL就填n(可选配置) auto_increment_increment=2 # 起始值。一般填第n台主MySQL。此时为第一台主MySQL(可选配置) auto_increment_offset=1 # 忽略mysql库(可选配置) binlog-ignore=mysql # 忽略information_schema库(可选配置) binlog-ignore=information_schema # 要同步的数据库,默认所有库(可选配置) replicate-do-db=db1 # slave 节点配置 # 节点唯一id值 server-id=2 # 开启二进制日志 log-bin=mysql-bin # 步进值auto_imcrement。一般有n台主MySQL就填n(可选配置) auto_increment_increment=2 # 起始值。一般填第n台主MySQL。此时为第一台主MySQL(可选配置) auto_increment_offset=2 # 要同步的数据库,默认所有库(可选配置) replicate-do-db=db1 # 查看 master 的状态 , 尤其是当前的日志及位置 > show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000004 | 1608 | | | | +------------------+----------+--------------+------------------+-------------------+ # 在slave节点执行如下命令 注意master_log_file 是对应show master status;中file的值,master_log_pos是对应position的值 > change master to master_host='192.168.79.15', master_user='root', master_password='root', master_log_file='mysql-bin.000009', master_log_pos=0; # 启动 slave 状态 ( 开始监听 msater 的变化 ) > start slave; # 查看 slave 的状态 > show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.79.15 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000009 Read_Master_Log_Pos: 863 Relay_Log_File: node-6-relay-bin.000002 Relay_Log_Pos: 500 Relay_Master_Log_File: mysql-bin.000009 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 863 Relay_Log_Space: 709 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: 6291c709-23af-11e9-99fb-000c29071862 Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0 # 当Slave_IO_Running: Yes和Slave_SQL_Running: Yes都为yes是说明主从复制正常 #重置 slave 状态 . $ reset slave; #暂停 slave 状态 ; $ stop slave;
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]