Editable /etc/hosts and /etc/resolv.conf in Docker container

Claim:
sometimes we need add ability to change /etc/hosts and /etc/resolv.conf in your docker container. Ex. PulseSecure rewrites defaults hosts and resolv.conf files with his files.

Solution:
First you must run docker container with --privileged key. In docker-compose it looks like:
service:
build:
context: ./docker/app
dockerfile: Dockerfile
privileged: true

In the docker container you must umount current /etc/hosts with below instructions in your Dockerfile:
RUN umount /etc/hosts && echo '127.0.0.1 localhost\
::1 localhost ip6-localhost ip6-loopback\
fe00::0 ip6-localnet\
ff00::0 ip6-mcastprefix\
ff02::1 ip6-allnodes\
ff02::2 ip6-allrouters' | tee /etc/hosts

Don't forget create your hosts file. If you will not create it this can call other issues.

Now you can edit /etc/hosts in the container as you wish. Lets do same things for the /etc/resolv.conf
RUN umount /etc/resolv.conf && echo 'nameserver 127.0.0.11\
options ndots:0' | tee /etc/resolv.conf

Here we umounting /etc/resolv.conf and adding ours. Nameserver by default must be 127.0.0.11.

Thats all. Now you can edit your /etc/hosts and /etc/resolv.conf files as you wish without any restrictions.

By the way if you catch an error with umount: /etc/hosts: must be superuser to umount try to do same things in yours entrypoint file. For example:
#!/bin/bash

#Preparing system for the pulse secure
su -c 'umount /etc/hosts' && echo '127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters' | tee /etc/hosts

su -c 'umount /etc/resolv.conf' && echo 'nameserver 127.0.0.11
options ndots:0' | tee /etc/resolv.conf

/usr/bin/supervisord -c /etc/supervisord.conf

Cannot proceed because system tables used by Event Scheduler were found damaged at server start

Проблема может возникнуть при восстановлении баз на новом сервере mysql.

Решается следующим образом:

mysqlcheck -u [username] -p --all-databases --check-upgrade --auto-repair
mysql_upgrade -u [username] -p

После приведенных выше команд обязательно перезагрузить сервер. У меня CentOS 7:

service mariadb restart

В случае если это не помогло, то можно проблему решить и следующим образом: просто скинуть настройки таблиц в default.
Файл таблиц обычно лежит в папке /usr/share/mysql/mysql_system_tables.sql
Для этого восстановите таблицу mysql с помощью следующих команд:

mysql -u root -p < /usr/share/mysql/mysql_system_tables.sql
-- Copyright (c) 2007, 2013, Oracle and/or its affiliates.
-- Copyright (c) 2008, 2014, SkySQL Ab.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; version 2 of the License.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA

--
-- The system tables of MySQL Server
--

set sql_mode='';
set storage_engine=myisam;
flush tables;

CREATE TABLE IF NOT EXISTS db (   Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges';

-- Remember for later if db table already existed
set @had_db_table= @@warning_count != 0;

CREATE TABLE IF NOT EXISTS host (  Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges;  Merged with database privileges';

CREATE TABLE IF NOT EXISTS user (   Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0  NOT NULL, max_updates int(11) unsigned DEFAULT 0  NOT NULL, max_connections int(11) unsigned DEFAULT 0  NOT NULL, max_user_connections int(11) DEFAULT 0  NOT NULL, plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, authentication_string TEXT NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';

-- Remember for later if user table already existed
set @had_user_table= @@warning_count != 0;

CREATE TABLE IF NOT EXISTS func (  name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin   comment='User defined functions';

CREATE TABLE IF NOT EXISTS plugin ( name varchar(64) DEFAULT '' NOT NULL, dl varchar(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci comment='MySQL plugins';

CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table';

CREATE TABLE IF NOT EXISTS tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin   comment='Table privileges';

CREATE TABLE IF NOT EXISTS columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin   comment='Column privileges';

CREATE TABLE IF NOT EXISTS help_topic ( help_topic_id int unsigned not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url text not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics';

CREATE TABLE IF NOT EXISTS help_category ( help_category_id smallint unsigned not null, name  char(64) not null, parent_category_id smallint unsigned null, url text not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories';

CREATE TABLE IF NOT EXISTS help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id  int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation';

CREATE TABLE IF NOT EXISTS help_keyword (   help_keyword_id  int unsigned not null, name char(64) not null, primary key (help_keyword_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help keywords';

CREATE TABLE IF NOT EXISTS time_zone_name (   Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8   comment='Time zone names';

CREATE TABLE IF NOT EXISTS time_zone (   Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8   comment='Time zones';

CREATE TABLE IF NOT EXISTS time_zone_transition (   Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8   comment='Time zone transitions';

CREATE TABLE IF NOT EXISTS time_zone_transition_type (   Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8   comment='Time zone transition types';

CREATE TABLE IF NOT EXISTS time_zone_leap_second (   Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8   comment='Leap seconds information for time zones';

CREATE TABLE IF NOT EXISTS proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum( 'CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA') DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns longblob DEFAULT '' NOT NULL, body longblob NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'IGNORE_BAD_TABLE_OPTIONS', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH') DEFAULT '' NOT NULL, comment text collate utf8_bin NOT NULL, character_set_client char(32) collate utf8_bin, collation_connection char(32) collate utf8_bin, db_collation char(32) collate utf8_bin, body_utf8 longblob, PRIMARY KEY (db,name,type)) engine=MyISAM character set utf8 comment='Stored Procedures';

CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) COLLATE utf8_general_ci DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin   comment='Procedure privileges';

-- Create general_log if CSV is enabled.

SET @str = IF (@@have_csv = 'YES', 'CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP(6) NOT NULL, user_host MEDIUMTEXT NOT NULL, thread_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, command_type VARCHAR(64) NOT NULL, argument MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment="General log"', 'SET @dummy = 0');

PREPARE stmt FROM @str;
EXECUTE stmt;
DROP PREPARE stmt;

-- Create slow_log if CSV is enabled.

SET @str = IF (@@have_csv = 'YES', 'CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP(6) NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME(6) NOT NULL, lock_time TIME(6) NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512) NOT NULL, last_insert_id INTEGER NOT NULL, insert_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment="Slow log"', 'SET @dummy = 0');

PREPARE stmt FROM @str;
EXECUTE stmt;
DROP PREPARE stmt;

CREATE TABLE IF NOT EXISTS event ( db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', name char(64) CHARACTER SET utf8 NOT NULL default '', body longblob NOT NULL, definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', execute_at DATETIME default NULL, interval_value int(11) default NULL, interval_field ENUM('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') default NULL, created TIMESTAMP NOT NULL, modified TIMESTAMP NOT NULL, last_executed DATETIME default NULL, starts DATETIME default NULL, ends DATETIME default NULL, status ENUM('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL default 'ENABLED', on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP', sql_mode  set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') DEFAULT '' NOT NULL, comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', originator INTEGER UNSIGNED NOT NULL, time_zone char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', character_set_client char(32) collate utf8_bin, collation_connection char(32) collate utf8_bin, db_collation char(32) collate utf8_bin, body_utf8 longblob, PRIMARY KEY (db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events';

CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM;

CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(16) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY Host (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges';
-- Remember for later if proxies_priv table already existed
set @had_proxies_priv_table= @@warning_count != 0;

После всего не забудьте сделать FLUSH PRIVILEGES; и перезапустить сервер.

Опциональный параметры и параметры по-умолчанию в функциях и методах в Swift

Данным постом начинаю рубрику изучения swift.
Делается больше для себя и «чтобы не забыть».
Плюс ко всему написание поста хорошо помогает закрепить прочитанное и испробованное.
Итак. Есть несколько вариантов написания функций и методов с опциональными значениями параметров.
Continue reading «Опциональный параметры и параметры по-умолчанию в функциях и методах в Swift»

Filter not clearing manually in CGridView Yii

Problem: after ajax update CGridView we can't clearing filter manually.
In start our CGridView is viewing like this:

$this->widget(
	'booster.widgets.TbGridView',
	array(
		'type' => 'bordered hover',
		'dataProvider' => $contacts->smartSearch(),
		'filter' => $contacts,
		'ajaxUpdate' => true,
		'id' => 'contacts-grid',
		'columns' => array(
			....
		)
	)
);

I'm usually using TbGridView, but we have not difference between it and CGridView.
So, we forget option ajaxUrl which solve the problem of formation GET request and will remove garbage from the query string to the server.

$this->widget(
	'booster.widgets.TbGridView',
	array(
		'type' => 'bordered hover',
		'dataProvider' => $contacts->smartSearch(),
		'ajaxUrl' => array('/contacts/index'), // <<<<<<<< THIS
		'filter' => $contacts,
		'ajaxUpdate' => true,
		'id' => 'contacts-grid',
		'columns' => array(
			....
		)
	)
);

Adding utm_source to url in custom text with php

So, we have a text in which there are links and you need to add an additional parameter of each link in the processing.
This function can help you:

function utm_source($content, $source, $campaign = false){
	$regexp = '/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i';
	$additional_url = 'utm_source=' . $source;
	if($campaign){
		$additional_url .= '&utm_campaign=' . $campaign;
	}
	$callback = function($matches) use ($additional_url){
		$url = $matches[1];
		$url = parse_url($url);
		if(isset($url['query'])){
			return $matches[1] . '&' . $additional_url;
		}else{
			return $matches[1] . '?' . $additional_url;
		}
	};
	$result = preg_replace_callback($regexp, $callback, $content);
	return $result;
}

Последний элемент массива в цикле foreach

$rgData=array
(
    'sid' => 22,
    'parent' => 0,
    'lvl' => 0,
    'title' => 'вап',
    'weight' => 0,
    'status' => 1,
    'aaa' => 0
);
//ключ-значение
$sResult=join(',', array_map(function($x, $y){return '"'.$x.'"="'.$y.'"';}, array_keys($rgData), array_values($rgData)));
//var_dump($sResult);
//только значения
$sResult=join(',', array_map(function($x){return '"'.$x.'"';}, array_values($rgData)));
//var_dump($sResult);

Вариант так же подходит для отображения кучи элементов в заданном формате из массива:

$sResult=join(', ', array_map(function($x){return $x['title'] . '(вес: ' . $x['weight'] . ' грамм)' ;}, array_values($rgData)));

Select view from mssql in php

Пришлось немного поковыряться с MSSQL. В ходе работы наткнулся на странную особенность: из среды Microsoft SQL Server Management Studio все выборки идут отлично, а в случае использования где-либо еще за пределами этой среды натыкаюсь на то ли баги, то ли...
В общем, для того, чтобы сделать select из view в mssql необходимо перед select'ом выполнить следующий запрос:

$sql = 'SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ARITHABORT ON';
Yii::app()->mssql->createCommand($sql)->queryAll();

После этого select можно делать стандартным методом:

$sql = 'SELECT * FROM View_Region_client;';
$distributor_link = Yii::app()->mssql->createCommand($sql)->queryAll();

Иначе, в случае не использования, можем наткнуться на ошибки типа:

 SQLSTATE[HY000]: General error: 208 General SQL Server error: Check messages from the SQL Server [208] (severity 16) [(null)]. The SQL statement executed was: SELECT * FROM DHWRiver.dbo.View_Region_client;

А вообще — не используйте, дети, mssql. От лукавого это все.

Ошибка 0xc0000005

Данная проблема стала проявляться на 64 битных ОС Windows 7. Ошибка в обновлениях Windows. Исправляется путем запуска команд через командную строку.

1 — Нажать «Пуск»
2 — Набрать «cmd» и открыть командную строку Windows
3 — Набрать wusa.exe /uninstall /kb:2859537
4 — После удаления обновления выбрать «Перезагрузить позже»
5 — В командной строке набрать wusa.exe /uninstall /kb:2872339.
6 — После удаления перезагрузить компьютер

После удаления обновлений более их не ставить (именно указанные пакеты (kb2859537 и kb2872339) и проблема проявляться не будет.

Поездка на Алтай

Как то раз я поехал на Алтай с конторой. Дело было в далеком 2008 году, когда я еще не знал о перевалах, о том, что можно отдыхать в этой замечательной республике за пределами Чемала, который является, по сути, своеобразной точкой стекания туда говн со всей сибирашки и не только. После преодоления пары перевалов один из которых еще не является сложным, в то время как второй, Чики-Таман, считается уже чуть ли не одним из сложных на Алтае по степени преодоления. Тогда, в 2008 году, оба перевала и дорога в 700 км была освоена за 12 часов на жигулях 7ой модели и тут понеслось.

Перевалы
Совершенно другой Алтай. Величественные горы, еще покрытые снегом вершины, нетронутая природа

Continue reading «Поездка на Алтай»

Webmin и резервное копирование по ftp/ssh/rsh

Снова записка в стиле «чтобы не забыть».

Для того, чтобы нормально заработало резервное копирование в webmin через ftp/ssh/rsh не нужно сидеть и переписывать скрипты fsdump, как это сначала начал делать я. Нужно всего лишь удостовериться, что в системе установлен последний TAR или, еще лучше, GTAR. К примеру в freebsd стандартный bsdtar урезанный до основных функций (архивация и разархивация), а такие расширенные функции как создание архива на томе с меткой (команда -V) оно не умело.

Ну а тут никому не нужный кусок писанины как поставить сие чудо:
#cd /usr/ports/archivers/gtar
#make install clean

Дальше по феншую настраиваем webmin, жмякаем «Сохранить и создать резервную копию сейчас» и радуемся, как на домашней тачке по SSH/FTP/RSH появляется архив с далекой Германии — отдохнувший, наездившийся по автобанам на мерседесах CLK серии и BMW 7-ой, насмотревшийся на Европейцев и желающий свалить снова туда же из сраной Рашки.

Magnet ссылки в Google Chrome в Windows

Для того, чтобы указать приложение по умолчанию, которое будет обрабатывать ссылки типа «magnet» в Google Chrome на Windows необходимо сделать следующее:

1 — Открыть regedit (Пуск → Выполнить → regedit)
2 — Перейти в ветку HKEY_CLASSES_ROOT\magnet\shell\open\command
3 — Тип «REG_SZ» и значение — полный путь до приложения с ключом. Например: «C:\Program Files\Peers\Peers.exe /magnet %1»

«Тормозит интернет!» и как с этим бороться

Ситуация проста и банальна: есть клиент, который утверждает, что тормозит интернет основываясь на визуальной загрузке страниц, на маленькой скорости загрузки с сайтов, делаются замеры с помощью команд «ping», делается «traceroute», замеряется все с помощью «winmtr» и, когда получаются результаты тестирования клиент делает неправильный вывод, что провайдер не хочет оказывать услуги соответствующие качеству. В итоге — клиент не доволен.

Итак, решение Continue reading ««Тормозит интернет!» и как с этим бороться»

Keyweb портится?

Сегодня progger.ru и все сопутствующие сайты пролежали порядка 4 часов. Написал в саппорт — не ответили в течении 4-х часов. Если и дальше данная проблема будет повторяться — придется убежать к Hetzner. Сейчас работоспособность всех ресурсов восстановлена. Кстати, сервер поднялся с полпинка после восстановления связи. Что ещё раз исключает то, что это был сбой ПО или перенагрузка на сервер...

Ещё один способ защититься от вирусов

Забегая вперед скажу, что этот пост не имеет рекламной нагрузки, а всего лишь позволяет пользователям защититься от вирусной активности.

Ещё одна неплохая программа для проверки на вирусы — это MalwareBytes AntiMalware. Программа имеет как коммерческую версию, которая будет защищаться Ваш компьютер от вирусной активности, так и бесплатный аналог. Соответственно мы выбираем бесплатный вариант, хотя это не мешает нам в будущем приобрести нормальную версию программы.
Continue reading «Ещё один способ защититься от вирусов»

Интернет таки сближает

В очередной раз интернет помог людям. Ну, в какой-то мере он все же сближает и только благодаря ему получаются такие знакомства, которые без него никогда бы не получились. Это подвердилось на поездке на Байкал автостопом в неизвестный город Иркутск к Tatarnikoffу, на помощи другу Lemurа с Москвы и, теперь, на встрече с родственниками (Милые люди, да :)) NikolaSoft с Украины!! :) В итоге получается, что благодаря интернету можно встречаться, общаться и дружить не только вконтакте и одноклассниках, но в ИРЛ :)