MySQL datubāze
Uzstādīšana
- Uzstāda mysql serveri:
sudo apt-get install mysql-server
atbild ar y un ievada root paroli, piemēram, Student007
Konfigurēšana
Visu saskarņu klausīšanās
- Drošības nolūkos, pēc noklusēšanas, mysql serveris klausās un atbild tikai uz localhost, un, lai tam pieslēgtos attālināti, jāizmanto SSH tunelis.
- Izstrādes un testa vidē, kas atrodas aizsargātā lokālā tīklā, serveri var iestatīt, lai tas klausās visas tīkla saskarnes. Kā root lietotājs failā /etc/mysql/my.cnf izmaina rindu:
# bind-address = 127.0.0.1
bind-address = 0.0.0.0
un pārstartē serveri.
UTF atbalsts
- Jaunākās mysql servera versijas izmanto UTF pēc noklusēšanas Tomēr drošībai UTF-8 atbalstu var norādīt tieši.
- Rediģē failu /etc/mysql/my.cnf un atbilstošajās sadaļās (zem [client] un [mysqld]) pievieno dažas jaunas rindas:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci
Lietotāju pievienošana
- Izveido lietotāju student ar tiesībām pieslēgties no jebkuras vietas, konsolē izpildot komandu:
CREATE USER 'student'@'%' IDENTIFIED BY 'Student007';
- Ja vēlas, lietotājam piešķir administratora tiesības:
GRANT ALL PRIVILEGES ON *.* TO 'student'@'%';
FLUSH PRIVILEGES;
- Ja vēlas, lai lietotājs var veidot arī citus administratora lietotājus, komandu papildina šādi:
GRANT ALL PRIVILEGES ON *.* TO 'student'@'%' WITH GRANT OPTION;
Datu bāzes pārvietošana
Ja grib lai MySQL glabā datus
/home katalogā (piem., ja / sadaļā ir ierobežota diska vieta):
- Aptur MySQL:
- Pārkopē /var/lib/mysql katalogu uz /home:
cp -r /var/lib/mysql /home/mysql
chown -R mysql:mysql /home/mysql
- Izmaina konfigurācijas failu /etc/mysql/my.cnf uz:
# datadir = /var/lib/mysql
datadir = /home/mysql
Kļūdas novēršana
- Ja pēc tam mysql nestartējas, un failā /var/log/messages parādās ziņojumi:
Aug 25 17:54:38 ads kernel: [ 105.679159] audit(1219676078.812:2): type=1503 operation="inode_create" requested_mask="w::" denied_mask="w::" name="/home/mysql/ads.lower-test" pid=4798 profile="/usr/sbin/mysqld" namespace="default"
Aug 25 17:54:38 ads kernel: [ 105.679256] audit(1219676078.812:3): type=1503 operation="inode_create" requested_mask="w::" denied_mask="w::" name="/home/mysql/ads.lower-test" pid=4798 profile="/usr/sbin/mysqld" namespace="default"
...
- Izmaina apparmor iestatījumus. Failā vi /etc/apparmor.d/usr.sbin.mysqld pievieno rindas:
/home/mysql/ r,
/home/mysql/** rwk,
- Pārstartē apparmor:
/etc/init.d/apparmor restart
- Palaiž MySQL:
Lietošana
- Pieteikšanos ar MySQL workbench, skatīt My SQLWork Bench
- Pieteikšanās konsolē: un uzaicinājumā ievada paroli.
- Uzstādīšanas pārbaude: parāda
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
- Datu bāzes izveide:
create database test;
use test;
Datu bāzes optimizēšana
- Ievada komandu:
mysqlcheck -u root -pPasswd -o <databasename>
- MySQL konsolē ieraksta komandu exit, lai atgrieztos parastajā čaulas komandrindas režīmā.
Kā ierakstīt MySQL datubāzē datus?
- Piesakās kā root lietotājs (sk. augstāk), izveido datubāzi, tabulu un ieraksta tajā datus:
create database mydatabase;
use mydatabase;
create table ttt (
id INT NOT NULL AUTO_INCREMENT,
val VARCHAR(255),
PRIMARY KEY(id));
show tables;
insert into ttt VALUES (NULL, 'aaa');
select * from ttt;
Pēdējā rinda izvada nelielu relāciju tabuliņu: mysql> select * from ttt;
+----+------+
| id | val |
+----+------+
| 1 | aaa |
+----+------+
Kļūdu novēršana
Kā pārliecināties, kas iet un kas neiet
- Piesakās kā root lietotājs:
- Pārlaiž mysql serveri:
/etc/init.d/mysql restart
Jāparādās rindai mysql start/running, process xxxx
kur xxxx ir kaut kāds skaitlis, bet nākamajā rindā ir komandrindas uzaicinājums, kas beidzas ar # (t.i. dators ir ir gatavs saņemt nākamo komandu).
- Apskata, kas rakstīts žurnāla failā:
tail -n10 /var/log/mysql/error.log
Pievērš uzmanību pēdējām rindām, tām ir jābūt apmēram šādām:....
111111 00:00:00 InnoDB: Started; log sequence number 0 123456
111111 00:00:00 [Note] Event Scheduler: Loaded 0 events
111111 00:00:00 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.41-3ubuntu12.10' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
Ja rāda kļūdas, pārkopē tās tīmekļa pārlūkprogrammas meklēšanas logā un cenšas atrast risinājumu.
- Pārliecinās, ka strādā mysql servera process: kā vienai no rindām ir jābūt:
…
mysql 1234 1 0 20:00 ? 00:00:00 /usr/sbin/mysqld
...
- Pārliecinās, ka mysql serveris klausās tīklu: kā vienai no rindām ir jābūt:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
Ja Mysql nestartējas
- Izdzēš failus:
cd /var/lib/mysql
sudo rm ibdata1
sudo rm ib_logfile0
sudo rm ib_logfile1
Noklusētas konfigurācijas atjaunošana
- Uzzina, kāda tieši MySql servera versija ir uzstādīta:
- Pārinstalē mysql serveri:
apt-get install --reinstall mysql-server-5.1
kur 5.1 ir tekošā pakotnes versija
- Atjauno root lietotāja paroli:
sudo dpkg-reconfigure mysql-server-5.1
Skatīt arī