必备知识:
1、MYSQL 用户授权
1、查看用户授权表
select user,host,password from mysql.user
2、登录mysql
mysql -u root -p password -h (IP)
3、给从服务器设置授权用户账户
grant all on *.* to user(用户名)@192.168.2.1 identified by '123'(密码);
注:该账户必须授予 REPLICATION SLAVE 权限,这里为了方便,就设了all
2、MYSQL bin-log 日志
1、解释:二进制日志
2、开始bin-log日志
配置文件中添加:
log-bin = mysql-bin(mysql-bin是文件的文件名)
3、查看是否开启log-bin
命令:
show variables like "%log-bin%"
4、与bin-log有关的日志刷新
1、flush logs :
此时就会多一个最新的bin-log日志
2、show master status; :
查看最后一个bin日志
3、reset master :
清空所有的bin-log日志
4、查看bin-log值日的内容:
命令:mysqlbinlog --no-defaults mysql-bin.00001 (--no-defaults:这个指令的作用就在于字符集的问题,原因可能是mysql开发的BUG)
注:这个命令好像有点不对,不知是不是我写错了,2014-5-31:01:51:39,待查
3、MYSQL 主从复制
1、Mysql 数据的备份和数据丢失之后的找回
1、MYSQL 备份语句:
mysqldump -u root -p123 test(库名) -l -F > /tmp/test.sql
解释:其中 -l表示的意思,就是在备份期间锁定数据库,不能进行读写操作,而-F的作用是,重新生成新的日志文件,也包括log-bin日志
2、MYSQL 恢复语句:
mysql -uroot -p123 3、问题:
假设数据库备份的时间是在9点,但是服务器挂掉的时间是在10点,问如何恢复9点到10点之间的数据
回答:
可以通过mysql的log-bin日志来恢复9点到10点之间的数据,用的的命令是 mysqlbinlog :
命令示范: mysqlbinlog --no-default mysql-bin.00001 --stop-position='280' | mysql -uroot -p123 test
命令解释:--stop-position='280' 这个参数,是指定需要恢复到哪条数据为止
:--start-position='106' 这个参数,是指从哪条数据开始恢复
:test 指的是要被恢复的数据库
4、MYSQL 的读写锁定:不适用 mysqldump(此命令已经自带参数 -l 进行锁定,并自动解锁)
锁定语句:flush tables with read lock;
解锁语句:unlock tables;
2、 MYSQL 的主从服务器配置:
1、MYSQL 主服务器的配置:
1、需要开启:
log-bin = mysql-bin(logs的文件名)
2、设置唯一的server-id:
server-id = 1 备注:取值范围 1 到 2的32次方 减 1
3、在主服务器上为从服务器建立访问权限:
命令:
grant all on *.* to user@192.168.2.1 identified by 123
解释:
在主服务器上建立一个拥有全部权限的用户user,操作范围是所有库和所有表,用户user的地址就是192.168.2.1,密码为123.注意:在访问时如果地址不正 确,则亦访问不了
4、备注:
1、主服务器配置文件选项:
binlog-do-db=mysql #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db=mysql #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
log-slave-updates #这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #是跳过错误,继续执行复制操作
2、MYSQL 从服务器的配置:
1、需要开启:
log-bin = mysql-bin
2、设置唯一的server-id:
server-id = 2
3、在从服务器的配置文件中,需要指定访问的主服务器的地址,端口以及所用到的用户名
实例:
master-host = 192.168.2.2
master-user = user
master-pass = 123
maste-port = 3306
master-connect-retry = 60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db = test #需要备份的数据库名
replicate-ignore-db=test #忽略的数据库
log-slave-updates #这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #是跳过错误,继续执行复制操作
备注:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
4、在从服务器上启动slave进程
命令:
mysql> start slave;
5、查看配置结果(status)
命令:
show slave status;
3、配之中常见的问题:
1、一般的异常只需要选择跳过一步即可解决
命令:-->slave stop;
-->SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 ;
-->slave start;
2、主键冲突,表已存在等错误:
方案:在 MYSQL 主服务器配置文件中跳过此类异常,继续下一步
slave_skip_errors = 1062, 1032, 1060
4、备注:
1、
当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。
2、
MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出 START SLAVE 时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。主服务器创建一个线程将二进制日志中的内容发送到从服务器。从服务器I/O 线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,从服务器使用此线程读取中继日志并执行日 志中包含的更新。SHOW PROCESSLIST 语句可以查询在主服务器上和从服务器上发生的关于复制的信息
3、
默认中继日志使用host_name-relay-bin.nnnnnn形式的文件名,其中 host_name 是从服务器主机名,nnnnnn是序列号。用连续序列号来创建连续中继日志文件,从000001开始。从服务器跟踪中继日志索引文件来识别目前正使用的中 继日志。默认中继日志索引文件名为host_name-relay-bin.index。在默认情况,这些文件在从服务器的数据目录中被创建。中继日志与 二进制日志的格式相同,并且可以用mysqlbinlog读取。当SQL线程执行完中继日志中的所有事件后,中继日志将会被自动删除。
4、
在主服务器上为复制设置一个连接账户。该账户必须授予 REPLICATION SLAVE 权限。如果账户仅用于复制(推荐这样做),则不需要再授予任何其它权限。
4、MYSQL 分区技术
需巩固的地方:
1、可能需要用到的 Linux 命令:
1、pstree
2、ifconfig eth0 192.168.2.1
3、scp
2、window 命令:
3、Mysql 命令:
1、show status; /G
单词:
client -> 客户端
variable 变量
replicate 复制

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

Metrik utama untuk menjelaskan arahan termasuk jenis, kunci, baris, dan tambahan. 1) Jenis mencerminkan jenis akses pertanyaan. Semakin tinggi nilai, semakin tinggi kecekapan, seperti const adalah lebih baik daripada semua. 2) Kunci memaparkan indeks yang digunakan, dan null menunjukkan tiada indeks. 3) Baris menganggarkan bilangan baris yang diimbas, yang mempengaruhi prestasi pertanyaan. 4) Tambahan memberikan maklumat tambahan, seperti menggunakanFilesort meminta bahawa ia perlu dioptimumkan.

MenggunakanTemary menunjukkan bahawa keperluan untuk membuat jadual sementara dalam pertanyaan MySQL, yang biasanya dijumpai di Orderby menggunakan lajur yang berbeza, GroupBy, atau tidak diindeks. Anda boleh mengelakkan berlakunya indeks dan menulis semula pertanyaan dan meningkatkan prestasi pertanyaan. Khususnya, apabila menggunakan pembelian muncul dalam menjelaskan output, ini bermakna MySQL perlu membuat jadual sementara untuk mengendalikan pertanyaan. Ini biasanya berlaku apabila: 1) deduplikasi atau pengelompokan apabila menggunakan yang berbeza atau kumpulan; 2) Susun apabila Orderby mengandungi lajur bukan indeks; 3) Gunakan subquery kompleks atau menyertai operasi. Kaedah Pengoptimuman termasuk: 1) Orderby dan GroupB

MySQL/InnoDB menyokong empat tahap pengasingan transaksi: ReadUncommitted, ReadCommitted, RepeatableRead dan Serializable. 1. ReadoMuncommitted membolehkan membaca data yang tidak komited, yang boleh menyebabkan bacaan kotor. 2. 3.RepeatableRead adalah tahap lalai, mengelakkan bacaan kotor dan bacaan yang tidak boleh diulang, tetapi bacaan hantu mungkin berlaku. 4. Serializable mengelakkan semua masalah konkurensi tetapi mengurangkan kesesuaian. Memilih tahap pengasingan yang sesuai memerlukan keseimbangan data konsistensi dan keperluan prestasi.

MySQL sesuai untuk aplikasi web dan sistem pengurusan kandungan dan popular untuk sumber terbuka, prestasi tinggi dan kemudahan penggunaan. 1) Berbanding dengan PostgreSQL, MySQL melakukan lebih baik dalam pertanyaan mudah dan operasi membaca serentak yang tinggi. 2) Berbanding dengan Oracle, MySQL lebih popular di kalangan perusahaan kecil dan sederhana kerana sumber terbuka dan kos rendah. 3) Berbanding dengan Microsoft SQL Server, MySQL lebih sesuai untuk aplikasi silang platform. 4) Tidak seperti MongoDB, MySQL lebih sesuai untuk data berstruktur dan pemprosesan transaksi.

Cardinality Indeks MySQL mempunyai kesan yang signifikan terhadap prestasi pertanyaan: 1. Indeks kardinaliti yang tinggi dapat lebih berkesan menyempitkan julat data dan meningkatkan kecekapan pertanyaan; 2. Indeks kardinaliti yang rendah boleh membawa kepada pengimbasan jadual penuh dan mengurangkan prestasi pertanyaan; 3. Dalam indeks bersama, urutan kardinaliti yang tinggi harus diletakkan di depan untuk mengoptimumkan pertanyaan.

Laluan pembelajaran MySQL termasuk pengetahuan asas, konsep teras, contoh penggunaan, dan teknik pengoptimuman. 1) Memahami konsep asas seperti jadual, baris, lajur, dan pertanyaan SQL. 2) Ketahui definisi, prinsip kerja dan kelebihan MySQL. 3) menguasai operasi CRUD asas dan penggunaan lanjutan, seperti indeks dan prosedur yang disimpan. 4) Biasa dengan debugging kesilapan biasa dan cadangan pengoptimuman prestasi, seperti penggunaan rasional indeks dan pertanyaan pengoptimuman. Melalui langkah -langkah ini, anda akan memahami sepenuhnya penggunaan dan pengoptimuman MySQL.

Aplikasi dunia nyata MySQL termasuk reka bentuk pangkalan data asas dan pengoptimuman pertanyaan kompleks. 1) Penggunaan Asas: Digunakan untuk menyimpan dan mengurus data pengguna, seperti memasukkan, menanyakan, mengemas kini dan memadam maklumat pengguna. 2) Penggunaan lanjutan: Mengendalikan logik perniagaan yang kompleks, seperti perintah dan pengurusan inventori platform e-dagang. 3) Pengoptimuman Prestasi: Meningkatkan prestasi dengan menggunakan indeks, jadual partisi dan cache pertanyaan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver Mac版
Alat pembangunan web visual

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.