Показаны сообщения с ярлыком MySQL. Показать все сообщения
Показаны сообщения с ярлыком MySQL. Показать все сообщения

суббота, 19 февраля 2011 г.

MySQL faq по командам (заметки)


Показать список баз:
SHOW DATABASES; 


Показать список таблиц в базе:

SHOW TABLES;

Показать сруктуру таблицы:
DESCRIBE table_name;



Имя текущей базы:

SELECT DATABASE();

Создать базу:
БЕКАП
http://yapro.ru/web-master/mysql/mysqldump.html
http://server-help.ru/?p=25%20%D0%B8%20http://www.codenet.ru/db/mysql/MySql-Backup.php
Для бекапа базы лучше использовать утилиту mysqldump.
При создании файла дампа, утилита вставляет в него команду
DROP TABLE IF EXISTS `table_name`;
Эта команда удаляет таблицы в рабочем экземпляре базы перед копированием в него из резаервной копии. Также полезным становиться функция 


Бекфп базы:
mysqldump -uroot -p --default-character-set=utf8 l2jdb > l2jdb_`date "+%Y-%m-%d-%R"`.sql

%R-часы

Востоновить из бекапа: 
mysql -uroot -p test_l2db < /home/vitaliy/l2jdb_2011-02-18.sql 


CRON

crontab -l

crontab -e

0 3 * * * /root/script_backup/db_script
0 4 * * * /root/script_backup/server_script

root@woolf:~/script_backup# cat server_script
# This script backups l2jserver folder to zip file
#!/bin/bash
zip -r /home/my_folder/backup/l2j_sever_`date "+%Y-%m-%d-%R"` /opt/l2j

root@woolf:~/script_backup# cat db_script
#!/bin/bash
mysqldump -uroot -pqawsed --default-character-set=utf8 l2jdb > /home/vitaliy/backup/l2jdb_`date "+%Y-%m-%d-%R"`.sql

среда, 15 декабря 2010 г.

Создание пользователя root в MySQL

Ставил ispCP Omega. При установке была бага с преднастройщиком Postfix

hosting:/usr/local/src/ispcp/ispcp-omega-1.0.7# aptitude install $(cat ./docs/Debian/debian-packages-`lsb_release -cs`)





    ┌──────────────────────────────────┤ Postfix Configuration ├──────────────────
    │                                                                                 
    │                                  Bad recipient delimiter                        
    │                                                                                 
The recipient delimiter must be a single character. 'question skipped' is        
what you entered.  
    │                                         OK                                      │                                                                                 │ 
    └─────────────────────────────────────────────────────────────────────────────




Вообщем я много раз жал ентер, и одноременно Ctrl+С, таким образом остановил установку, далее забутался. Потом анологично повтрил усаановку, и когда меня преднастройщи Postfix спрашивал о hostname FQDN,  на повторный вопрос я ответил нет. Устанока продолжилась...
Далее када все поставилось я перешел к этапу конифигурирования базы. Вот тут и вылезла проблема с отсутствием пользователя root.


debconf-show postfix



Есть база данных. Не заходит под root. Что делать?
Идем в  /etc/mysql/debian.cnf и видим что при устаноки базы по умолчанию создался логин и пароль. Заходим. 
hosting:/usr/local/src/ispcp/ispcp-omega-1.0.7# cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = CGsdvZpFplfMHq9R
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = CGsdvZpFplfMHq9R
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

hosting:~# mysql -u debian-sys-maint -p
Enter password: CGsdvZpFplfMHq9R
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.0.51a-24+lenny4 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Выбираем бузу mysql
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Смотрим таблицу user
mysql> select * from user;
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| Host      | User             | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| localhost | debian-sys-maint | *B0EB27A689F6C17DCA846AEA8DF794B21493B4A3 | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | N                | N              | N                   | N                  | N                |          |            |             |              |             0 |           0 |               0 |                    0 | 


Как видно пользователя root нет. При установке система по каим-то причинам его не создала, поэтому его нада создать вручную, чем мы сейчас и займемся. 
Стандартным методом GRANT ALL PRIVILEGES создать не получиться:

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123' WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

Повидемому нашему, по умолчанию, созданному ситемой пользователю debian-sys-maint не хватает прав на команду GRANT ALL PRIVILEGES.
Мы видем что почти под всеми привелегиями стоит Y а под некоторыми N
 Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv 
N                              N                                    N                              N                          N

Под параметром Create_user_priv  стоит N, поэтому мы и не можем создать для root'а, либо любого другого пользователя привелегии с помощью команды GRANT. Однако разрешенная привелегия Insert_priv позволяет нам вставить привелегии. Поэтому прибегним к хитрости. Создадим пользователя другой командой:

INSERT INTO user (Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv, Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv, Execute_priv,Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Create_user_priv,max_questions,max_updates,max_connections,max_user_connections) VALUES ('localhost','root',PASSWORD('123'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','0','0','0','0');

Это все одна команда в одну строчку! на конце на забываем знак ;

Итак, мы добавляем в базе mysql в таблицу user суперпользователя root
Всего в таблице user 37 столбцов:
№1-3. Первые три это как видно Host- это домен откуда разрешаем заходить,его значение localhost. User это root. Потом идет пароль 123. 
№ 4-29. Далее идут привелегии я насчитал 26 шт. Select_priv,Insert_priv и т.д. из которых пользователю debian-sys-maint по умалчанию созданому системой разрешены только  21, кроме последних 5 помеченных N. Мы же в свою очередь создаем все привелегии со значением  
№ 30-33. Далее пропускаем 4 значения для  ssl_type | ssl_cipher | x509_issuer | x509_subject  (видно пустые солбцы)
№ 34-37. Для последних четырех столбцов указываем четыре нуля.

Затем чтобы привилегии вступили в силу выполняем команду:
mysql> FLUSH PRIVILEGES;

Позже паролшь можно будет сменить камандами:
mysql> UPDATE user SET Password=PASSWORD('123') WHERE User='root' and Host='localhost';
mysql> FLUSH PRIVILEGES;

И перезапускаем базу:
hosting:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.                                                                                      
Starting MySQL database server: mysqld.                                                                                      
Checking for corrupt, not cleanly closed and upgrade needing tables..

Проверив таиблицу user увидем что во всех столбцах с привелегиями стоят Y:
mysql> select * from user;
| localhost | root             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                |          |            |             |              |             0 |           0 |               0 |                    0 | 

Поздровляю root создан!
Надеюсь Вам поможет. Сам не один час бился вот по этим ссылкам:


aka_delix

воскресенье, 6 июня 2010 г.

LAMP [ Linux Apache2 MySQL PHP ] Ubuntu Debian

----------- Install MySQL

vito@comp:~$ sudo apt-get install mysql-server mysql-client

input root password and then chek for working ok try to login into mysql

vito@comp:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.1.37-1ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


----------- Install Apach2

vito@comp:~$ sudo apt-get install apache2
[sudo] password for vito:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3
libaprutil1-ldap
Предлагаемые пакеты:
apache2-doc apache2-suexec apache2-suexec-custom
НОВЫЕ пакеты, которые будут установлены:
apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3
libaprutil1-ldap
обновлено 0, установлено 9 новых пакетов, для удаления отмечено 0 пакетов, и 4 пакетов не обновлено.
Необходимо скачать 3.328kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 10,1MB.
Хотите продолжить [Д/н]? y
Получено:1 http://ua.archive.ubuntu.com/ubuntu/ lucid/main libapr1 1.3.8-1build1 [116kB]
...
Enabling module authz_host.
Enabling module reqtimeout.


Настраивается пакет apache2-mpm-worker (2.2.14-5ubuntu8) ...
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]


Настраивается пакет apache2 (2.2.14-5ubuntu8) ...


Обрабатываются триггеры для libc-bin ...
ldconfig deferred processing now taking place


Chek for apapsh2 is Ok in web-brouser http://127.0.0.1/ should be shown somthing like this "It works!"

----------------- Install PHP5

vito@comp:~$ sudo apt-get install php5
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic
Для их удаления используйте 'apt-get autoremove'.
Будут установлены следующие дополнительные пакеты:
apache2-mpm-prefork libapache2-mod-php5 php5-common
Предлагаемые пакеты:
php-pear php5-suhosin
Пакеты, которые будут УДАЛЕНЫ:
apache2-mpm-worker
НОВЫЕ пакеты, которые будут установлены:
apache2-mpm-prefork libapache2-mod-php5 php5 php5-common
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 1 пакетов, и 4 пакетов не обновлено.
Необходимо скачать 3.376kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 8.790kB.
Хотите продолжить [Д/н]? y
Получено:1 http://ua.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-prefork 2.2.14-5ubuntu8 [2.422B]
...
Настраивается пакет apache2-mpm-prefork (2.2.14-5ubuntu8) ...
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]


Настраивается пакет php5-common (5.3.2-1ubuntu4.2) ...
Настраивается пакет libapache2-mod-php5 (5.3.2-1ubuntu4.2) ...


Creating config file /etc/php5/apache2/php.ini with new version
* Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

vito@comp:~$ vi /var/www/test.php //ucoment text
#

try http://127.0.0.1/test.php it returens test page PHP Version 5.2.6-1+lenny8

---------------apache2 restart


vito@comp:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2
IF YOU GET THIS ERROR : apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
YOU NEED : use a text editor such as "sudo nano" at the command line to create a new file
vito@comp:~$ sudo nano /etc/apache2/conf.d/fqdn //then add to the file and save

ServerName localhost



-------------myphpadmin

vito@comp:~$ sudo apt-get install phpmyadmin //Chose apache2 in ask window

Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Следующие НОВЫЕ пакеты будут установлены:
dbconfig-common javascript-common libjs-mootools libmcrypt4 libt1-5 php5-gd php5-mcrypt php5-mysql phpmyadmin wwwconfig-common
Следующие пакеты будут УДАЛЕНЫ:
linux-headers-2.6.32-21{u} linux-headers-2.6.32-21-generic{u}
0 пакетов обновлено, 10 установлено новых, 2 пакетов отмечено для удаления, и 4 пакетов не обновлено.
Необходимо получить 5.379kБ архивов. После распаковки освободится 63,5MБ.
Хотите продолжить? [Y/n/?] y
Запись информации расширенных состояний... Готово
Получить:1 http://ua.archive.ubuntu.com/ubuntu/ lucid/main dbconfig-common 1.8.44ubuntu1 [474kB]


Запись информации расширенных состояний... Готово

vito@comp:~$ sudo /etc/init.d/apache2 restart


---------------- Check for phpmyadmin works normal
Chek for apapsh2 is Ok in web-browser http://127.0.0.1/phpmyadmin

IF YOU SEE:
"Not Found
The requested URL /phpmyadmin was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch Server at 127.0.0.1 Port 80"

YOU NEED ADD ALIASES INTO /etc/phpmyadmin/apache.conf

By default apache search phpmyadmin site directory(index.html and etc.) in /var/www/phpmyadmin and can't find it, because actually phpmyadmin site directory is located in /usr/share/phpmyadmin. In this case you need to add symbolic link to apache2 config file:

vito@comp:~$ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf


---------------- Add the alias "/phpmyadmin /usr/share/phpmyadmin" //these lines taked from /etc/phpmyadmin/apache.conf

vito@comp:~$ sudo /etc/init.d/apache2 restart

----------------- Try open http://127.0.0.1/phpmyadmin/ to be shore that evrything works Ok.


Related links
Blog Yaap
Feyhoa
LAMP_ubuntu

To resolve alise problem on Debiani-like systems chek to
HowToForge
LinuxQuestions.Org