Błąd MySQL 1036: tabela jest tylko do odczytu


Kiedy próbuję wstawić rekord do tabeli za pomocą phpmyadmin, daje mi to
#1036 - Table 'sch_portfolio' is read only

Widziałem w niektórych artykułach, że może się to zdarzyć, jeśli właścicielem tej tabeli jest ktoś inny niż mysql. więc ustawiłem właściciela jako mysql i zrestartowałem serwer. A jednak otrzymuję ten sam błąd. każda pomoc byłaby bardzo mile widziana. Z góry dziękuję
drwxrwxrwx 2 mysql mysql 4096 Jul 13 15:27 schooltap

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Upewnij się, że nie zainstalowałeś
innodb_force_recovery & > 0 w my.cnf
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wymaga to uprawnień superużytkownika, najczęściej używa się do tego sudo.
w celu zmiany właściciela plików.
sudo chown -R mysql:mysql/var/lib/mysql

Załaduj ponownie MySQL, aby wprowadzić zmiany
sudo service mysql restart

kto jest właścicielem
sch_portfolio
i do jakiej grupy należy, powinien być mysql: mysql. będziesz musiał także zrestartować mysql, aby zmiany odniosły skutek
upewnij się również, że aktualnie zalogowany użytkownik ma GRANT dostęp do aktualizacji
Serwer MySQL działa jako
user mysql
, a nie jako użytkownik, z którym się logowałem. Aby mógł uzyskać dostęp do plików, które mają tylko prawa użytkownika, muszą należeć do użytkownika
„mysql”
, ponieważ jest to nazwa, pod którą działa serwer. Upewnij się, że folder i pliki używane przez mysql należą do użytkownika „mysql”. Te pliki znajdują się w katalogu
/ var/lib/mysql
. Sam katalog również musi należeć do
„mysql”
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Moim zdaniem to zasługa silnika akumulacyjnego.
Jeśli
wybierzesz mechanizm przechowywania danych jako MRG_MYISAM
, to spowoduje to, że tabela będzie tylko
czytelna
, a wstawianie danych nie będzie możliwe.
Zatem
wybierz myisam jako mechanizm przechowywania
..
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem podobny problem i rozwiązaniem dla mnie była zmiana właściciela/grupy plików tabel na mysql.
możesz zrobić dwie opcje

1
>
najpierw musisz udać się na swój serwer i uzyskać uprawnienia
sudo su

a potem poszedłem do ukrytego folderu mysql.:
cd/var/lib/mysql/

a potem uruchomiłem to polecenie:
chown -R mysql:mysql *

a to rozwiąże twój problem
następnie aby sprawdzić, czy zadziała, musisz ponownie uruchomić mysql
service mysql restart


2
>
lub możesz po prostu przejść do phpmyadmin, a następnie wybrać wszystkie tabele w bazie danych
https://i.stack.imgur.com/wjc0S.png
a następnie musisz wybrać opcję naprawy
https://i.stack.imgur.com/efAc3.png
(przepraszam, mam phpmyadmin po włosku)
możesz to również zrobić w bashu,
i będzie działać!
jeśli żadna z opcji nie działa, spróbuj ponownie zainstalować mysql
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Podejrzewam, że w moim przypadku było to spowodowane ukrytym zabezpieczeniem przed złośliwym oprogramowaniem (prawdopodobnie było w pakiecie z czymś innym). Problem zniknął po usunięciu tego programu antywirusowego.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz zmienić mechanizm przechowywania danych, aby nie musieć zmieniać ustawień.

Jeśli

zainstalujesz go na InnoDB, a problem zostanie rozwiązany. (Możesz to zmienić na karcie operacji w phpmyadmin)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się