Режим само за четене в 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)

Категория:

Logged in as {{omniform_current_user_display_name}}. Edit your profile. Log out? Required fields are marked *

Your email address will not be published. Required fields are marked *

Comments are closed.

You must be logged in to post a comment.