Режим само за четене в mysqld

Идяета е да се стартира mysqld които да предлага само четене без запис. Това е подходящо за репликиращи схеми и други.

Първи метод :
1.1

Със Superuser т.е. root сетвамее read_only=1 или read_only=yes

mysql-h localhost-u root-p
set GLOBAL read_only = true;

Със нормален потребител притежаващ пълни права върху конкретна база изпълняваме следната заявка:

mysql> insert into x (c) values ('test_mysql_read_only_by_amri');
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement

За да активираме write правата на всеки нормален потребител(изключение е само root):

mysql-h localhost-u root-p
set GLOBAL read_only = false;

1.2
Във файл /etc/mysql/my.cnf и по- точно в секция [mysqld] се добавя:

[mysqld]
read_only=1

/etc/init.d/mysql restart;

Втори метод за заключване на таблиците само за четене:

2.1
Отварят се две конзоли свързани към mysql. На втората се изпълнява(заключваме):

mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.01 sec)

На първата конзола която също е свързана към mysql се прави опит за INSERT , но не става 🙂

За да се активира отново на втората конзола се изпълнява:

mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Режим само за четене в mysqld, 5.0 out of 5 based on 1 rating

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *