Идяета е да се стартира 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 , но не става :)
За да се активира отново на втората конзола се изпълнява:
Режим само за четене в mysqld,mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)