Wednesday, September 20, 2017

Debian Jessie: change MySql distribution to MySql community

Debian Stretch does not shipped MySql. Before upgrade your Debian Jessie into Stretch, you need to change your MySql Debian distribution into MySql Community.

Install MySql dependency
# apt-get install lsb-release

Download MySql apt configuration from https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
# wget --no-check-certificate https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
Note: File name may change without notice, check latest mysql-apt-config at https://dev.mysql.com/downloads/repo/apt/

"The MySQL APT repository can only replace distributions of MySQL maintained and distributed by Debian or Ubuntu. It cannot replace any MySQL forks found either inside or outside of the distributions' native repositories. To replace such MySQL forks, you have to uninstall them first before you install MySQL using the MySQL APT repository. Follow the instructions for uninstallation from the forks' distributors and, before you proceed, make sure you back up your data and you know how to restore them to a new server. "

Backup MySql
# mysqldump --all-database > backup_all_201709.sql -u root -p

Remove your MySql Distribution
# apt-get --purge remove mysql-server mysql-client
# apt-get --purge remove mysql-server-5.5 mysql-client-5.5 // if required
# apt-get --purge remove mysql-server-core-5.5 mysql-client-core-5.5
// if required
Note: check your mysql using 

# aptitude search mysql-server

Install MySql apt configuration.
# dpkg -i mysql-apt-config_0.8.7-1_all.deb
Choose MySql 5.7 for stable version and continue by click Ok. It will create apt repository file like this:

# cat /etc/apt/sources.list.d/mysql.list
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb http://repo.mysql.com/apt/debian/ jessie mysql-apt-config
deb http://repo.mysql.com/apt/debian/ jessie mysql-5.7
deb http://repo.mysql.com/apt/debian/ jessie mysql-tools
#deb http://repo.mysql.com/apt/debian/ jessie mysql-tools-preview
deb-src http://repo.mysql.com/apt/debian/ jessie mysql-5.7


Run update and install
# apt-get update
# apt-get install mysql-server mysql-client
At the end of installation, you will be ask for MySql root password (Note: this is not root Linux user)

# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled)
   Active: active (running) since Wed 2017-09-20 09:24:13 WIB; 8s ago
 Main PID: 8432 (mysqld)
   CGroup: /system.slice/mysql.service
           └─8432 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mys...

Sep 20 09:24:13 igamdeb8 systemd[1]: Started MySQL Community Server.
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>


Run mysql_upgrade:
# mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading the sys schema.
Checking databases.
...



Resotre your database
# mysql -u root -p < backup_all_201709.sql
Enter password:


References:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html
https://dev.mysql.com/doc/refman/5.7/en/reloading-sql-format-dumps.html

Debian Stretch: Installing MySql (for fresh installation)

Remove all MariaDB
# apt-get --purge remove mysql-server mysql-client 
or 
# apt-get --purge remove mariadb-server-10.1 mariadb-server-core-10.1 mariadb-client-10.1 
# apt-get autoclean && apt-get autoremove
Note: option purge will remove all mariadb database

Install MySql dependency

# apt-get install lsb-release

Download MySql apt configuration from https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
# wget --no-check-certificate https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
Note: File name may change without notice, check latest mysql-apt-config at https://dev.mysql.com/downloads/repo/apt/

Install MySql apt configuration.
# dpkg -i mysql-apt-config_0.8.7-1_all.deb
Choose MySql 5.7 for stable version and continue by click Ok. It will create apt repository file like this:
# cat /etc/apt/sources.list.d/mysql.list
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb http://repo.mysql.com/apt/debian/ stretch mysql-apt-config
deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7
deb http://repo.mysql.com/apt/debian/ stretch mysql-tools
#deb http://repo.mysql.com/apt/debian/ stretch mysql-tools-preview
deb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7

Run apt update
# apt-get update

Now you are ready to install MySql by issuing command
# apt-get install mysql-server mysql-client
Reading package lists... Done
Building dependency tree     
Reading state information... Done
The following additional packages will be installed:
  libmecab2 mysql-community-client mysql-community-server
The following NEW packages will be installed:
  libmecab2 mysql-client mysql-community-client mysql-community-server
  mysql-server
0 upgraded, 5 newly installed, 0 to remove and 3 not upgraded.
Need to get 36.8 MB of archives.
After this operation, 254 MB of additional disk space will be used.
Do you want to continue? [Y/n]

At the end of installation, you will be ask for MySql root password (Note: this is not root Linux user)
# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; bad; vendor preset: enable
   Active: active (running) since Wed 2017-09-20 08:04:27 WIB; 24s ago
 Main PID: 15189 (mysqld)
   CGroup: /system.slice/mysql.service
           └─15189 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysql

Sep 20 08:04:23 ca01 systemd[1]: Starting MySQL Community Server...
Sep 20 08:04:27 ca01 systemd[1]: Started MySQL Community Server.
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>


Reference:
  1. http://mysqlrelease.com/2017/06/debian-9-and-mysql-watch-out/
  2. https://dev.mysql.com/downloads/repo/apt/

Monday, September 18, 2017

Debian jessie: upgrade to Debian 9 (codename stretch)

Note:
  1. Debian 9 Stretch does not include MySql, your MySql will replace with MariaDB 10.1. Follow this step  to keep your MySql.
  2. PHP 7.0 will be use. Your PHP application may be not support it.
Upgrade your system and application before performing Debian 9 upgrade.
# apt-get update && apt-get upgrade -y
Note: restart your system if needed.

Install apt-listchanges
# apt-get install apt-listchanges

Edit your apt source and add Debian 9 (stretch) repository:
#deb http://security.debian.org/ jessie/updates main
#deb-src http://security.debian.org/ jessie/updates main

# Indonesia (main)
#deb http://kambing.ui.ac.id/debian/ jessie main
deb http://kambing.ui.ac.id/debian/ stretch main contrib

# NON FREE
#deb http://httpredir.debian.org/debian jessie main contrib non-free

# BACKPORT
#deb http://ftp.de.debian.org/debian jessie-backports main

# Google chrome
#deb http://dl.google.com/linux/chrome/deb/ stable main
Note: You can choose other closest mirror to you or use "deb http://mirrors.kernel.org/debian stretch main contrib".

To add CD-ROM
# apt-cdrom add

Do minimal upgrade by running apt update and apt-get upgrade
# apt-get update
...
# apt-get upgrade
...

You are ready for distribution upgrade. Edit /etc/apt/sources.list
#deb http://security.debian.org/ jessie/updates main
#deb-src http://security.debian.org/ jessie/updates main
deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

#optional
#deb  http://deb.debian.org/debian stretch-updates main

# Indonesia (main)
# deb http://mirrors.kernel.org/debian stretch main contrib
deb http://kambing.ui.ac.id/debian/ stretch main contrib

# NON FREE
deb http://httpredir.debian.org/debian stretch main contrib non-free

# BACKPORT
deb http://ftp.de.debian.org/debian stretch-backports main

Note: you need to enable NON FREE repository for firmware upgrade

Do distribution upgrade
# apt-get update && apt-get dist-upgrade

Distribution upgrade will take some times depend on your connection speed. At the end of packages upgrade, you will need to interact with system.
Restart your system and enable 3rd party repository such as google chrome, virtualmin, odoo, etc. Perform final upgrade/update.
# apt-get update && apt-get upgrade -y

Your Debian 9 (stretch) is ready. :)
# uname -an
Linux saturn 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) x86_64 GNU/Linux

Note:
  1. A new configuration may apply, please carefully to choose a new configuration or your existing one (the option show as keep local).
  2. Default document root apache2 folder will change from /var/www/ to /var/www/html.
  3. Apache2 will run under linux user and group 'www-data'.
  4. To replace php5 to php7.0 follow this step

References: 

Friday, September 8, 2017

Windows 10 Build 15063: Fix Display Brightness on Amd

After upgrade to WIndows 10 build 15063, display brightness can not be change. To fix this we need to change value in registry.
Open regedit and change this value
  • HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> Control> Class> {4d36e968-e325-11ce-bfc1-08002be10318}> 0000 > KMD_EnableBrightnessInterface2 to 0
  • HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> Control> Class> {4d36e968-e325-11ce-bfc1-08002be10318}> 0001 > KMD_EnableBrightnessInterface2 to 0
Restart your Windows.

References:

https://community.amd.com/thread/184667

Friday, August 25, 2017

Android Studio: how to use Google Play service 11.2 release

To use latest Google Play services 11.2 release, we need to meet some requirements.
Here are my environment:
  • Android Studio 2.3.3
  • Android SDK Build-Tools 26.0.1
  • Google Play Service 43
  • Android Support Repository, rev 47
  • Android SDK Platform 26

1. Start from Google Play services 11.2 release, Google Play services dependcies are now abailable via maven.google.com. We need to change our application Grandle build scripts.

  1. Open Tab 1:Project, select Android
  2. Expand Grandle Scripts
  3. Open build.grandle (Project: [your project name])
  4. Find and add google() inside allprojects like this:
allprojects {
  repositories {
    jcenter()
    maven {
      url 'https://dl.google.com/dl/android/maven2/'
      // url 'https://maven.google.com' // NOT WORK
      // Alternative URL is 'https://dl.google.com/dl/android/maven2/'
    }
  }
}

2. Google Play services 11.2 release requires Android SDK Platform 26. You need to install it from SDK Manager and used it.
Open Tab 1:Project, select Android

  1. Expand Grandle Scripts
  2. Open build.grandle (Module: app)
  3. Make sure you use Android SDK Platform 26
android {
  compileSdkVersion 26
  buildToolsVersion "26.0.1"
  defaultConfig {
    ...
    targetSdkVersion 26
    ...
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

3. You can change and use Google Service 11.2 for example to use Google Adsmob
Open Tab 1:Project, select Android

  1. Expand Grandle Scripts
  2. Open build.grandle (Module: app)
dependencies {
  ...
  compile 'com.google.android.gms:play-services-ads:11.2.2'
  ...
}

References: