- Ubuntu:
 - Install:
 - sudo apt-get install mysql-server
 - Reinstall:
 - Tricks:
 - Allow others host access:
 - mysql -uroot -p
 - CREATE USER 'root'@'host-ip' IDENTIFIED BY 'password';
 - GRANT ALL PRIVILEGES ON *.* TO 'root'@'host-ip' WITH GRANT OPTION;
 - CREATE USER 'root'@'%' IDENTIFIED BY 'password';
 - GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
 - FLUSH PRIVILEGES;
 - sudo vim /etc/mysql/my.cnf
 - #bind-address = 127.0.0.1
 - sudo /etc/init.d/mysql restart
 - Make sure your IP is correct
 - Too many connections:
 - Checking your config file /etc/mysql/my.cnf:
 - max_connections: comment this line or just set value is 100
 - [mysqld] - connect-timeout: set value is 5 or less
 - Can not startup MySQL:
 - Check security-related processes on your server:
 - iptables
 - AppArmor
 - Try disabled profile for MySQL:
 - Move /etc/apparmor.d/usr.sbin.
mysqld to /etc/apparmor.d/disable/ usr.sbin.mysqld  - Restart AppArmor
 - SELinux
 - etc
 - Check all log files in /var/log
 - I was focused on daemon.log
 - Restore with large database dump file:
 - Option 1:
 - mkdir splits
 - split -n 200 database_backup.sql splits/sql_
 - This produced several dozen files in order, and it took about 10 minutes. The -n option told split to split each file up into 200 lines each. So the files were then named sql_aa, sql_ab, sql_ac all the way to sql_fg. Then, I did the following command using cat to pipe the files to mysql:
 - cd splits
 - cat sql_* | mysql -u root -p database_name
 - Option 2:
 - You need to ramp up your bulk_insert_buffer_size. The default is 8M. To see what your current setting is, run this:
 - mysql> show variables like 'bulk%';
 - Just add this to /etc/my.cnf
 - [mysqld]
 - bulk_insert_buffer_size=512M
 - So as to not restart mysql, run this SQL command:
 - SET GLOBAL bulk_insert_buffer_size = 1024 * 1024 * 512;
 - Try restore the dump file
 - Option 3:
 - Change in my.cnf file:
 - [InnoDB]
 - InnoDB_fast_shutdown = off
 - [networking]
 - [data/memory size]
 - max_allowed_Packet = 100MB
 - [timeout settings]
 - connect_timeout = 60 (seconds)
 - interactive_timeout = 57600
 - [advanced]
 - max_connections = 200
 - Try restore the dump file
 - Reset root password:
 - sudo /etc/init.d/mysqld stop
 - mysqld_safe --skip-grant-tables
 - mysql --user=root mysql
 - UPDATE user SET Password=PASSWORD('your-new-password') WHERE user='root';
 - FLUSH PRIVILEGES;
 - exit;
 - killall mysqld
 - sudo /etc/init.d/mysqld restart
 - Replication:
 - Master server:
 - sudo vim /etc/mysql/my.cnf
 - [mysqld]
 - log-bin = /var/log/mysql/mysql-bin.log
 - binlog-do-db=exampledb #chang exampledb to your db
 - server-id=1
 - #skip-networking
 - #bind-address = 127.0.0.1
 - sudo service mysql restart
 - mysql -uroot -p
 - Allow all host login to master server:
 - GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword'
 - Allow single host login to master server
 - REPLICATION SLAVE ON *.* TO 'root'@'Slave-IP' IDENTIFIED BY 'yourpassword'
 - FLUSH PRIVILEGES;
 - USE exampledb
 - FLUSH TABLES WITH READ LOCK;
 - SHOW MASTER STATUS;
 - Transfer database from master to slaves:
 - Backup and restore database from master server to all Slaves
 - Use "LOAD DATA FROM MASTER;"
 - UNLOCK TABLES;
 - Slave servers:
 - sudo vim /etc/mysql/my.cnf
 - [mysqld]
 - server-id=2 #You can type other number id
 - sudo service mysql restart
 - mysql -uroot -p
 - SLAVE STOP
 - CHANGE MASTER TO
 - MASTER_HOST='Master-IP/Master-domain',
 - MASTER_USER='slave_user',
 - MASTER_PASSWORD='<some_password>',
 - MASTER_LOG_FILE='mysql-bin.006',
 - You can get this file from master "SHOW MASTER STATUS" -> File
 - MASTER_CONNECT_RETRY=10,
 - MASTER_PORT=3306,
 - MASTER_LOG_POS=183;
 - You can get this file from master "SHOW MASTER STATUS" -> Position
 - SHOW SLAVE STATUS
 - mysqladmin -uroot -p shutdown
 - mysqladmin -uroot -p start
 - Slave Started
 - InnoDB performance:
 - Update this config to my.cnf
 - innodb_buffer_pool_size=8GB
 - innodb_log_file_size=256M
 - innodb_log_buffer_size=4M
 - innodb_flush_log_at_trx_commit=2
 - innodb_thread_concurrency=8
 - innodb_flush_method=O_DIRECT
 - http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
 - Before restart mysql, delete all old logs in "/var/lib/mysql":
 - ib_logfile*
 - Centos:
 - Install:
 - yum install mysql-server
 - yum install mysql
 - yum install mysql-devel
 - yum install php-mysql
 - Reinstall:
 - yum remove mysql-server
 - yum remove mysql
 - Tricks:
 - By default mysql has no password. For change the password, just using these commands:
 - mysql
 - mysql> USE mysql;
 - mysql> UPDATE user SET Password=PASSWORD('new-password') WHERE user='root';
 - mysql> FLUSH PRIVILEGES;
 
Good luck!
No comments:
Post a Comment