Синхронизация master-slave базы данных MySQL, у вас есть?
Синхронизация master-slave базы данных MySQL, у вас есть?

1.Предисловие

Мастер-подчиненная репликация баз данных должна быть знакома каждому, и я думаю, что есть статьи, знакомящие с ней. Не обманывайтесь, думая, что репликация «главный-подчиненный» означает синхронизацию «главный-подчиненный». Сегодня мы собираемся изучить принцип и процесс синхронизации главных и подчиненных баз данных. База данных в основном используется для хранения веб-данных и чрезвычайно важна на предприятиях. Давайте посмотрим на нее вместе.

1.1 Назначение базы данных в режиме «главный-подчиненный»

Репликация master-slave MySQL широко используется на малых и средних предприятиях, а также на крупных предприятиях. Целью репликации master-slave MySQL является обеспечение резервного копирования базы данных и регулярная синхронизация данных главной базы данных с подчиненной базой данных после выхода базы данных маскера. вниз, можно настроить базу данных веб-приложений. Быстро переключитесь на подчиненную базу данных, чтобы обеспечить высокую доступность веб-приложений.

1.2 Архитектура по принципу «главный-подчиненный»

Для синхронизации master-slave MySQL требуется как минимум 2 сервера.,Одна из них — главная библиотека,Другой - рабская библиотека,Чтобы реализовать копирование, сначала необходимо включить функцию журнала bin-log на мастере.,Журнал bin-log используется для записи операторов SQL операций добавления, удаления, изменения и обновления, выполняемых в главной библиотеке.,Весь процесс нужно запустить3индивидуальныйнить,Соответственно, Мастер включает IONить.,Слейв включает IONить и SQLнит.

2. Подготовьте экспериментальную среду.

Для этого эксперимента требуется использование двух серверов: один является главным, а другой — подчиненным. Подготовка к эксперименту требует работы обоих серверов.

2.1 Отключите selinux и брандмауэр

При необходимости все же рекомендуется выключить selinux. Брандмауэр можно определить по ситуации. Вы можете напрямую отключить фаервол, если проведете собственные эксперименты.

Язык кода:javascript
копировать
#Закрыть брандмауэр
systemctl stop firewalld
iptables -F
#Закрыть selinux
setenforce 0

2.2 Просмотр локального IP

Проверьте локальный IP-адрес и проверьте, можете ли вы пропинговать www.baidu.com.

Язык кода:javascript
копировать
ifconfig 
192.168.116.166   #Первый IP-сервер служит главным
192.168.116.128   #Второй серверIP как подчиненный

2.3 Версия базы данных сервера

Обе версии сервера — CentOS7.9.

Язык кода:javascript
копировать
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

Для этого эксперимента база данных использует версию сообщества MySQL8.0. адрес загрузки пакета rpm Пакет RPM, используемый в этом эксперименте — MySQL8.0 Community Edition — можно напрямую щелкнуть по предыдущему пакету, чтобы перейти, или вы можете напрямую скопировать эту ссылку: http://repo.mysql.com/mysql80-community-release -el7.об/мин Отображается в табличной форме:

Версия сервера

IP

Версия базы данных

CentOS7.9.2009

192.168.116.166 (мастер)

MySQL8.0.32 Выпуск сообщества

CentOS7.9.2009

192.168.116.128(с подчиненного)

MySQL8.0.32 Выпуск сообщества

3. Установите MySQL8.0.

Здесь вам также необходимо установить базу данных на оба сервера.

3.1 Очистите пакеты, поставляемые с CentOS7.

В CentOS7 файлы и пакеты mariadb устанавливаются по умолчанию. Их необходимо сначала удалить, иначе они повлияют на последующие установки.

Язык кода:javascript
копировать
#Очистить существующие файлы, связанные с mariadb и mysql
[root@localhost ~]# rpm -qa grep mysql |
[root@localhost ~]# rpm -qa grep mariadb |
mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

Далее найдите файлы mysql и mariadb и удалите их.

Язык кода:javascript
копировать
[root@localhost ~]# find / -name mariadb
[root@localhost ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql

3.2 Загрузите и установите базу данных 8.0

Источник оборотов официального сайта копировать спереди,использоватьwgetСкачать,Если команда wget не,Сначала вам необходимо загрузить команду wget. - Можно копировать напрямую

Язык кода:javascript
копировать
yum install wget -y 
wget http://repo.mysql.com/mysql80-community-release-el7.rpm
rpm -ivh mysql80-community-release-el7.rpm 
yum install mysql-community-server

После их установки вы можете запустить службу напрямую;

Язык кода:javascript
копировать
#Запустить службу
systemctl перезапустите mysqld

3.3 Найдите пароль инициализации

Пароли инициализации двух компьютеров разные. Вы можете сначала найти их, а затем изменить пароли базы данных двух компьютеров на одинаковые.

Язык кода:javascript
копировать
#Найти пароль инициализации
grep -i 'password' /var/log/mysqld.log 
2023-03-23T06:39:43.463553Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q_gkjqeR1iGA

база данных Пароль идет после двоеточия:q_gkjqeR1iGA

3.4 Изменить пароль базы данных

Рекомендуется сменить пароли обеих баз данных на одинаковые для облегчения последующего тестирования.

Язык кода:javascript
копировать
#Войти с паролембаза данных Сменить пароль на новый
[root@localhost ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by '#Admin$5^!';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

Заявление о смене пароля

Язык кода:javascript
копировать
alter user 'root'@'localhost' identified by '#Admin$5^!';

В MySQL8.0 пароль необходимо изменить как можно более сложным, прежде чем он сможет пройти. Вы можете использовать операторы для проверки сложности.

Язык кода:javascript
копировать
mysql> show variables like 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     | 
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

Включить ли проверку пароля пользователя Место, где хранится файл паролей Пароль должен быть длиной не менее 8 символов Количество прописных и строчных букв должно быть не менее 1. Содержит хотя бы одно число Установите уровень пароля, уровень по умолчанию — средний. Содержит хотя бы один символ

Вышеуказанный контент требует работы на обоих серверах.

4. Работайте на главном мастере

Главный мастер определен выше как IP-адрес сервера: 192.168.116.166. Чтобы интуитивно видеть, на каком сервере он находится, измените здесь имя хоста, чтобы его можно было легко отличить.

4.1 Временно измените имя хоста

Язык кода:javascript
копировать
[root@localhost ~]# hostname master
[root@localhost ~]# bash
[root@master ~]# 

4.2 Настройка основной базы данных

Создайте пользователя базы данных «slave21», сделайте его удаленным и установите пароль.

Язык кода:javascript
копировать
[root@master ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create user 'slave21'@'%' identified with mysql_native_password by '#slvae21!@3LL';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to 'slave21'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'slave21'@'%';
+-------------------------------------------------+
| Grants for slave21@%                            |
+-------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `slave21`@`%` |
+-------------------------------------------------+
1 row in set (0.00 sec)

Кажется, что эта картинка содержит много контента, но на самом деле там всего несколько предложений;

Язык кода:javascript
копировать
create user 'slave21'@'%' identified with mysql_native_password by '#slvae21!@3LL';

Смысл этого утверждения заключается в создании пользователя подчиненного21,Имя пользователя можно определить самостоятельно; @'%' означает, что вы можете использовать данные базы данных для удаленного входа в систему.,identified with mysql_native_password byэтотиндивидуальныйправила предложениядаMySQL8.0фиксированный метод записи,Это значит установить для него пароль.

Язык кода:javascript
копировать
grant replication slave on *.* to 'slave21'@'%';

Это утверждение означает авторизацию этой пользовательской базы. Разрешения данных,*.*В общем, дайте все разрешения,Первыйиндивидуальный*значит всебаза данные, второй означает базу данныхповерхность。

Язык кода:javascript
копировать
flush privileges;

Этот оператор означает обновление базы данных, чтобы ранее установленное содержимое можно было синхронизировать с базой данных.

Язык кода:javascript
копировать
show grants for 'slave21'@'%';

Проверьте, были ли записаны ранее установленные разрешения в базу данных. Если содержимое отображается, это означает, что запись прошла успешно.

4.3 Изменение файла конфигурации базы данных

Язык кода:javascript
копировать
[root@master ~]# vim /etc/my.cnf
[root@master ~]# sed 4,+4p -n /etc/my.cnf
[mysqld]
server-id=21
log-bin=mysql-bin
binlog_do_db=test
binlog_ignore_db=mysql
#Перезапустить службу
[root@master ~]# systemctl restart mysqld

server-id=21 Уникальный идентификатор службы базы данных. log-bin=mysql-bin устанавливает место хранения журналов binlog binlog_do_db=test устанавливает базу данных для синхронизации. Если это не написано, значит синхронизируется все базы. binlog_ignore_db=mysql запрещает синхронизацию базы данных

Помните, что после настройки есть еще одна команда, которая должна перезапустить службу.

4.4 Просмотр статуса мастера

После настройки файла конфигурации снова войдите в систему базы данных mysql, чтобы просмотреть основную информацию.

Язык кода:javascript
копировать
[root@master ~]# !m
mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      157 | test         | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

Зачем вам проверять эту информацию? Потому что она нужна при настройке подчиненной базы данных.

Файл — это файл хранения только что настроенной папки журнала, который используется для записи файла журнала операций MySQL. Позиция представляет собой смещение База данных Binlog_Do_DB, которую необходимо синхронизировать Binlog_Ignore_DB не синхронизирует базу данных

На этом этапе не продолжайте работать с первой главной базой данных, чтобы избежать изменения смещения.

5. Работайте от подчиненного устройства

Здесь вам нужно работать на втором сервере. Здесь также модифицируется имя хоста для повышения узнаваемости.

5.1 Временно измените имя хоста

Язык кода:javascript
копировать
[root@localhost ~]# hostname slave22
[root@localhost ~]# bash
[root@slave22 ~]# 

5.2 Изменение файла конфигурации

Просто напишите уникальный идентификатор с сервера,server-id=22,Содержимое этого идентификатора не обязательно должно совпадать с приведенным выше.,Если это не тот же идентификационный номер, что и предыдущий.,Неважно, как вы это настроите.

Язык кода:javascript
копировать
#файл конфигурации mysql
[root@slave22 ~]# vim /etc/my.cnf
[root@slave22 ~]# sed 4,+1p -n /etc/my.cnf
[mysqld]
идентификатор сервера=22
[root@slave22 ~]# systemctl перезапустите mysqld

Не забудьте перезапустить службу

5.3 Привязка главного мастер-сервера

Язык кода:javascript
копировать
[root@slave22 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> change master to master_host='192.168.116.166',master_user='slave21',master_password='#slvae21!@3LL',master_log_file='mysql-bin.000001',master_log_pos=157;
Query OK, 0 rows affected, 8 warnings (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.116.166
                  Master_User: slave21
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 157
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Master_Log_File: mysql-bin.000001
             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: 157
              Relay_Log_Space: 540
              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: 21
                  Master_UUID: 7d57e7f4-c945-11ed-b2a1-000c29b5625a
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica 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
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

Оператор, который действительно необходимо выполнить;

Язык кода:javascript
копировать
change master to master_host='192.168.116.166',master_user='slave21',master_password='#slvae21!@3LL',master_log_file='mysql-bin.000001',master_log_pos=157;
  • master_host= #IP-адрес первого мастера укажите позже.
  • master_user= #Запишите имя пользователя, ранее созданное на мастер-сервере
  • master_password= #Запишите пароль имени пользователя, ранее созданного на мастер-сервере
  • master_log_file= #Файл журнала, используйте статус главного устройства для отображения значения, отображаемого на этом шаге.
  • master_log_pos= #Смещение
Язык кода:javascript
копировать
start slave;

Включить синхронную репликацию данных

Язык кода:javascript
копировать
show slave status \G

После выполнения этого оператора проверьте, соответствуют ли два значения Slave_IO_Running: Yes и Slave_SQL_Running: Yes «да». Если да, это означает, что синхронизация выполняется, что также означает, что наш эксперимент прошел успешно.

Конечно, бывают случаи, когда после завершения два значения не являются «да». Одно значение может быть «нет», или оба значения могут быть «нет».

5.4 Как решить проблему нет

Вы можете сначала остановить подчиненное устройство и переопределить его снова, пока оба варианта не будут положительными.

Язык кода:javascript
копировать
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> reset slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.116.166
                  Master_User: slave21
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 157
               Relay_Log_File: localhost-relay-bin.000003
                Relay_Log_Pos: 373
        Relay_Master_Log_File: mysql-bin.000001
             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: 157
              Relay_Log_Space: 767
              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: 21
                  Master_UUID: 7d57e7f4-c945-11ed-b2a1-000c29b5625a
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica 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
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

Вы также можете сначала скопировать содержимое базы данных, подлежащей синхронизации, на подчиненный сервер, чтобы содержимое базы данных, подлежащей синхронизации, на двух серверах было абсолютно одинаковым. Затем используйте этот метод для привязки и запуска заново.

6. Результаты испытаний

6.1 Создайте базу данных на главном мастере

Мы закончили вышеописанные эксперименты, пора приступить к созданию базы. данные пришли на проверку, мы предварительно выбрали базу для синхронизации данныхдаtestЗатем мы создаемtestбаза данных, и записывать в него таблицы, данные и т.д.

Язык кода:javascript
копировать
# Создано на основном мастере
mysql> create database test;
Query OK, 1 row affected (0.01 sec)

mysql> create database abc;
Query OK, 1 row affected (0.00 sec)

mysql> use test
Database changed
mysql> create table test1(id int,name varchar(20) not null default 'username');
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test1 values(1,'zhangsan'), (2,'lisi'), (3,'wangwu');
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> desc test1;
+-------+-------------+------+-----+----------+-------+
| Field | Type        | Null | Key | Default  | Extra |
+-------+-------------+------+-----+----------+-------+
| id    | int         | YES  |     | NULL     |       |
| name  | varchar(20) | NO   |     | username |       |
+-------+-------------+------+-----+----------+-------+
2 rows in set (0.01 sec)

mysql> select id,name from test1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
|    3 | wangwu   |
+------+----------+
3 rows in set (0.00 sec)

6.2 Просмотр из подчиненной базы данных

можно увидетьtestбаза данных Уже синхронизировано,войти вtestПосмотреть данные под ним в библиотеке,Он все еще синхронизирован.

Язык кода:javascript
копировать
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test1          |
+----------------+
1 row in set (0.00 sec)

mysql> desc test1;
+-------+-------------+------+-----+----------+-------+
| Field | Type        | Null | Key | Default  | Extra |
+-------+-------------+------+-----+----------+-------+
| id    | int         | YES  |     | NULL     |       |
| name  | varchar(20) | NO   |     | username |       |
+-------+-------------+------+-----+----------+-------+
2 rows in set (0.00 sec)

mysql> select id,name from test1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
|    3 | wangwu   |
+------+----------+
3 rows in set (0.00 sec)

Посмотреть базу данныхвповерхностьинформация существует,Инструкция по выбору синхронизированныхtestбаза данные без проблем.

7. Резюме

Проведя описанный выше эксперимент, вы обнаружите, что главная база данных может быть синхронизирована только с подчиненной базой данных. Итак, можно ли синхронизировать их друг с другом на этой основе. Ответ — да, это синхронизация между главной и подчиненной базой данных. Мастер. Это главный сервер. Когда он синхронизирует данные, он действует как подчиненный. Когда он записывает данные, он действует как главный. Если вы считаете, что приведенный выше контент хорош, вы можете поставить ему лайк и поддержать его!

я участвуюВторой этап специального тренировочного лагеря Tencent Technology Creation 2023 года включает в себя эссе, получившие призы, которые разделят призовой фонд в 10 000 юаней и часы с клавиатурой.

я участвуюТема базы данных сообщества разработчиков облачных технологий Tencent. Конкурс эссе, получивший приз.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose