diff options
author | Sytse Sijbrandij <sytse@gitlab.com> | 2014-10-13 08:19:48 +0200 |
---|---|---|
committer | Sytse Sijbrandij <sytse@gitlab.com> | 2014-10-13 08:19:48 +0200 |
commit | f7b19023b1e917ce9ca422bc386b239eb470d37b (patch) | |
tree | b4a970532eb7927e6261f46fc42887f5e792adde /doc/update | |
parent | b956605f9e5f95ded853d3458f0f132dbb5b892a (diff) | |
parent | d94be1ddbfb8fadf015eacbdc58c62c3cc0ffa91 (diff) | |
download | gitlab-ce-f7b19023b1e917ce9ca422bc386b239eb470d37b.tar.gz |
Merge pull request #7742 from bbodenmiller/patch-7
Cleanup MySQL database
Diffstat (limited to 'doc/update')
-rw-r--r-- | doc/update/7.3-to-7.4.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/doc/update/7.3-to-7.4.md b/doc/update/7.3-to-7.4.md new file mode 100644 index 00000000000..0ad29e52075 --- /dev/null +++ b/doc/update/7.3-to-7.4.md @@ -0,0 +1,68 @@ +# From 7.3 to 7.4 + +## GitLab 7.4 has not been released yet! + +This document currently just serves as a place to keep track of updates that will be needed for the 7.4 update. + +## Update config files + +* Add `collation: utf8_general_ci` to config/database.yml as seen in [config/database.yml.mysql](config/database.yml.mysql) + +## Optional optimizations for GitLab setups with MySQL databases + +Only applies if running MySQL database created with GitLab 6.7 or earlier. If you are not experiencing any issues you may not need the following instructions however following them will bring your database in line with the latest recommended installation configuration and help avoid future issues. Be sure to follow these directions exactly. These directions should be safe for any MySQL instance but to be sure take a current MySQL database backup beforehand. + +``` +# Secure your MySQL installation (added in GitLab 6.2) +sudo mysql_secure_installation + +# Login to MySQL +mysql -u root -p + +# do not type the 'mysql>', this is part of the prompt + +# Convert all tables to use the InnoDB storage engine (added in GitLab 6.8) +SELECT CONCAT('ALTER TABLE gitlabhq_production.', table_name, ' ENGINE=InnoDB;') AS 'Copy & run these SQL statements:' FROM information_schema.tables WHERE table_schema = 'gitlabhq_production' AND `ENGINE` <> 'InnoDB' AND `TABLE_TYPE` = 'BASE TABLE'; + +# If previous query returned results, copy & run all outputed SQL statements + +# Find MySQL users +mysql> SELECT user FROM mysql.user WHERE user LIKE '%git%'; + +# If git user exists and gitlab user does not exist +# you are done with the database cleanup tasks +mysql> \q + +# If both users exist skip to Delete gitlab user + +# Create new user for GitLab (changed in GitLab 6.4) +# change $password in the command below to a real password you pick +mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY '$password'; + +# Grant the git user necessary permissions on the database +mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `gitlabhq_production`.* TO 'git'@'localhost'; + +# Delete the old gitlab user +mysql> DELETE FROM mysql.user WHERE user='gitlab'; + +# Quit the database session +mysql> \q + +# Try connecting to the new database with the new user +sudo -u git -H mysql -u git -p -D gitlabhq_production + +# Type the password you replaced $password with earlier + +# You should now see a 'mysql>' prompt + +# Quit the database session +mysql> \q + +# Update database configuration details +# See config/database.yml.mysql for latest recommended configuration details +# Remove the reaping_frequency setting line if it exists (removed in GitLab 6.8) +# Set production -> pool: 10 (updated in GitLab 5.3 & 6.2) +# Set production -> username: git +# Set production -> password: the password your replaced $password with earlier +sudo -u git -H editor /home/git/gitlab/config/database.yml +```
\ No newline at end of file |