Issue: When plugin in the Ethernet cable to computer would be not have a connection.
Reason: Ethernet driver is not installed, corrupted or out of date.
motherboard: Asus z97-AR
Intel CPU: Intel Core i7-4790K
operating system: Window 7
Go to device manager.
Under ‘Other devices’ the Ethernet Controller has a warning icon
In device manager right click on ‘Ethernet Controller’ then ‘Update Driver Software’ then ‘browse my computer for driver software’
Browse to the extracted folder ‘Intel_LAN_Win7-8-8-1_VER191510’ then click next
# ways to find flash drive dmesg | tail sudo fdisk -l lsusb ls /dev/sd*
# make a directory to mount the usb sudo mkdir /media/usb
# mount usb
# to grant permission to all when mounting add umask flag. For only root omit flag. sudo mount -o umask=000 /dev/sda1 /media/usb
# if error mount: unknown filesystem type 'exfat' sudo apt-get install exfat-fuse exfat-utils
# mount on every boot
# determine the partition/filesystem type for proc column sudo blkid /dev/sda*
# edit file sudo nano /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
/dev/sda1 /media/usb exfat defaults
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
# As of 2016-07-03 you cannot update raspberry pi packages thus some programs cannot be updated such as git.
# to have the latest git version you will need to install it by source How To Install Git from Source
# where highlighted if incorrect the service may not start
disable = no
type = UNLISTED
port = 9418
socket_type = stream
wait = no
user = nobody
server = /usr/bin/git
server_args = daemon --inetd --export-all --base-path=/var/fsq
log_on_failure += USERID
$ sudo /etc/init.d/xinetd restart $ sudo /etc/init.d/xinetd status
# change gitlab port to match nginx port $ nano /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
## GitLab settings
## Web server settings (note: host is the FQDN, do not include http://)
# change gitlab port to match nginx port $ nano /etc/gitlab/gitlab.rb
## Url on which GitLab will be reachable.
## For more details on configuring external_url see:
## Advanced settings
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8081
# unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
# unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
# reconfigure gitlab $ gitlab-ctl reconfigure
# restart gitlab $ sudo gitlab-ctl restart
# restart server $ sudo reboot
# restart nginx $ /etc/init.d/nginx restart
# check if listen to port $ nmap -sS 192.168.0.14
# navigate to page. Be careful with browser cache (especially firefox)
Found out that not enough memory was being allocate. May be because its a raspberry pi and it has limited memory.
The solution was to reduce unicorn worker processes thus reducing the memory consumption. $ nano /etc/gitlab/gitlab.rb
# Deleting branches and committing changes (edit file) using GitLab hangs it
error: proxyRoundTripper: POST " failed with: "EOF"
The corresponding unicorn worker waits for the git hook to complete and can not serve other requests during this time. The hook uses the GitLab web API to check if the user is allowed to execute the requested git operation. Because I had unicorn running with only one worker, no other worker was available to serve the API request, thus resulting in a deadlock. https://gitlab.com/gitlab-org/gitlab-ce/issues/13947
If you get permission errors like "You don't have permission to access /assets/logo-white-0b53cd4ea06811d79b3acd486384e047.png on this server." then you need "Require all granted" in the <Location> in your apache vhost configuration file
# if you only want to replicate a specified database you need to add line to my.cnf
# !!! IMPORTANT in selecting the correct database name or replication will run without errors but nothing will be updated
# name reported to the master during slave registration
# give a server id
# give bin log file location
# restart database
$ sudo /etc/init.d/mysql restart
# add the user the slave will use
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'slavepassword';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
the slave server has a ‘read-only’ variable because that is its purpose. (Do not use this in master-master replication)
# The purpose of the import is because both the master and slave database must be the equal at point where the binlog started recording the replication.
# import the dump.
$ mysql -uroot < master_dbname_dump.sql
# Set the slave user
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.3', MASTER_USER='repl', MASTER_PASSWORD='slavepassword';
# Set a user that will only have an read ability.
# This is a safeguard and repetitive because setting the 'read-only' variable in my.cnf would prevent slave writing. Slave should not have writing permissions.
mysql> CREATE USER 'read_user'@'%' IDENTIFIED BY 'password';
mysql> GRANT SELECT ON *.* TO 'read_user'@'%';
# start slave
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS \G
The location of either the master or slave logs are located in /var/log/mysql.
Its a binary(.bin) file contain the queries ran to sync the slave.
# view what inside the bin, mysql view queries logs
$ mysqlbinlog /var/log/mysql/mysql-bin.000001
# show the bin name
mysql> SHOW MASTER STATUS;
mysql> SHOW BINARY LOGS;
# to reset all the queries and purge all binary logs. This will also do the same in the slave.
mysql> RESET MASTER;
# Sometimes there's errors in the 'slave status' you can skip queries but more error may lie ahead. This is not a permanent fix.
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
# the slave is working when you see this in the status
# To detect a Master and Slave being out of sync
# Pick any table and run CHECKSUM TABLE against a table on the Master and the Slave's copy of the same table.
# If the values do not come back the same, then something is out-of-sync.
mysql> CHECKSUM TABLE dbname.table;
On master when changing the replicate user password there was an error on the slave. Then the slave needed to be reset.