CentOS 7: MariaDB

Настраиваем репозиторий — в папке /etc/yum.repos.d создаём файл mariadb.repo со следующим содержимым:
# MariaDB 10.1 CentOS repository list — created 2015-09-11 06:33 UTC
# mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Это конфиг для моей версии. Можно сгенерировать этот конфиг прямо на сайте MariaDB — downloads.mariadb.org/mariadb/repositories/

Затем устанавливаем пакеты:
yum install MariaDB-server MariaDB-client

yii framework-да база менен иштоо

2чи сабак, биринчи сабактын уландысы.

/opt/lampp/htdocs/2/demos/2/protected/config/main.php
файлын озгоротобуз, базанын жолдорун корсотобуз, mysql базанын аты yii_blog2
<?php
return array(
	'defaultController'=>'salam',

	'import'=>array(
		'application.models.*',
		'application.components.*',
	),

	'components'=>array(		
		'db'=>array(
			'connectionString' => 'mysql:host=localhost;dbname=yii_blog2',
			'emulatePrepare' => true,
			'username' => 'a',
			'password' => '1',
			'charset' => 'utf8',
		),
	),
);


Бул жерде, биринчи defaultController деген — кайсы контроллер иштеши керектиги жонундо, import модельди иштетиш учун керек, модель база менен иштоого керек, калганы базанын логин-парольдору.

Читать дальше →

Эн жонокой мини CMSти ойлоп табуу, оз колубуз менен жасоо

Жонокой Cms-ти жасаганы аракет жасайм, кылган кадамдарымды баяндап
берем.

Сабактын болуктору.
1) Sql скрипт менен базаны жасоо (2 болук)
2) Негизги баракчага базанын маанилерин чыгаруу (3)
3) Админкадан жаны статья кошуу (4)

Cms-тин томондогу функциялары болушу керек
1 Акыркы статьялар негизги баракчада, базадан алынып чыгарылышы керек
2 Админка-да жаны статьяларды кошуу, жана озгортуу фукциялары болушу керек
3 Темаларды кошобуз, аны wordpess-тин темалары сыяктуу кылса болот

Cms ти жасаганда эн татаал амалы бул mysql менен иштоо экен. Ошондуктан биринчи кадам маалымат базалар менен иштоого арналат.
Читать дальше →

Ошибка при дампе базы данных MySQL

Есть у меня база данных, в которой есть таблица posts с более чем 20 миллионов строк. По ночам выполняется дамп базы командой mysqldump. Но недавно начались проблемы с дампом:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `posts` at row: 7642723
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `posts` at row: 8423924
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `posts` at row: 3424900


В Интернете рекомендуют увеличить параметр max-allowed-packet (у меня он был 4МБ), помогло, теперь команда выглядит примерно так:
mysqldump -u user -pPassword --log-error=/var/log/dump.log --max-allowed-packet=32M mydb

Не устаю удивляться MySQL-у

Я не программист, но периодически приходится писать мелкие программки для собственных нужд. И иногда приходится работать с MySQL, который постоянно удивляет меня, не специалиста по SQL, всякими прикольными запросиками )

Вот последний пример — нужно тупо считать количество открытий различных страниц сайта. Создал табличку с двумя полями — идентификатор страницы и счётчик. Страниц много и они могут добавляться поэтому хотелось бы, чтобы строки с нужным идентификатором автоматически создавались при необходимости, т.е. чтобы не нужно было проверять наличие строки и, в зависимости от результата, либо делать инсерт, либо апдейт. Ну и чтобы счётчик накручивался сразу и без лишних действий, таких как — прочитать предыдущее значение, прибавить к нему 1 и записать новое значение.
Каким-то местом я почувствовал, что такое должно быть в MySQL, ну и действительно — всё это делается одним запросом:
insert into pages_views values (10,1) ON DUPLICATE KEY UPDATE shows=shows+1;

— вставить строку со значениями 10 (идентификатор страницы) и 1 (начальное значение счётчика), а если строка с таким уникальным ключом уже есть, то увеличить значение поля shows на 1.
В моём случае уникальным ключом является поле с идентификатором страницы.