檔案來源:http://www.linuxfromscratch.org/blfs/view/svn/server/mariadb.html
$ sudo groupadd -g 51 mysql
$ sudo useradd -c "MySQL Server" -d /RAID/local/srv/MySQL -g mysql -s /bin/false -u 51 mysql
$ sed -i "s@data/test@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt
Option:
- 如果沒有 cmake 執行 $ sudo apt install cmake
- 如果沒有 /usr/bin/c++ 執行 $ sudo apt install g++
- Curses library not found 執行 $ sudo apt install libncurses5-dev
- Could NOT find LibXml2 執行 $ sudo apt install libxml2-dev
- Could NOT find JNI
修改 /usr/share/cmake-3.5/Modules/FindJNI.cmake
增加:
JAVA_APPEND_LIBRARY_DIRECTORIES(
/usr/lib/jvm/java-8-oracle/jre/lib/{libarch})
list(
/usr/lib/jvm/java-8-oracle/include)
- Bison executable not found in PATH 執行 $ sudo apt install bison
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DCMAKE_INSTALL_PREFIX=/RAID/local/srv/MySQL \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DINSTALL_DOCDIR=share/doc/mysql \
-DINSTALL_DOCREADMEDIR=share/doc/mysql \
-DINSTALL_MANDIR=share/man \
-DINSTALL_MYSQLSHAREDIR=share/mysql \
-DINSTALL_MYSQLTESTDIR=share/mysql/test \
-DINSTALL_PLUGINDIR=lib/mysql/plugin \
-DINSTALL_SBINDIR=sbin \
-DINSTALL_SCRIPTDIR=bin \
-DINSTALL_SQLBENCHDIR=share/mysql/bench \
-DINSTALL_SUPPORTFILESDIR=share/mysql \
-DMYSQL_DATADIR=/RAID/DB \
-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
-DWITH_EXTRA_CHARSETS=complex \
-DWITH_EMBEDDED_SERVER=ON \
-DTOKUDB_OK=0
PS:
$ make
- 如果有 /usr/bin/c++ 用 -DCMAKE_CXX_COMPILER=/usr/bin/c++
- 如果有 /usr/bin/g++ 用 -DCMAKE_CXX_COMPILER=/usr/bin/g++
$ sudo make install
$ install -v -dm 755 /RAID/local/conf
$ cat > /RAID/local/conf/my.cnf << "EOF"
# Begin /RAID/local/conf/my.cnf
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /run/mysqld/mysqld.sock
default-character-set=utf8
# The MySQL server
[mysqld]
port = 3306
socket = /run/mysqld/mysqld.sock
datadir = /RAID/DB
character-set-server=utf8
collation-server=utf8_general_ci
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all.
skip-networking
# required unique id between 1 and 2^32 - 1
server-id = 1
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /RAID/local/srv/MySQL
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /RAID/local/srv/MySQL
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
# End /RAID/local/conf/my.cnf
EOF
安裝資料庫
$ sudo /RAID/local/srv/MySQL/bin/mysql_install_db --basedir=/RAID/local/srv/MySQL --defaults-file=/RAID/local/conf/my.cnf --datadir=/RAID/DB --user=mysql
$ sudo chown -R mysql:mysql /RAID/DB
$ sudo install -v -m755 -o mysql -g mysql -d /run/mysqld
啟動資料庫服務
$ sudo /RAID/local/srv/MySQL/bin/mysqld_safe --defaults-file=/RAID/local/conf/my.cnf --datadir=/RAID/DB --user=mysql 2>&1 >/dev/null &
設定資料庫管理員密碼
$ sudo /RAID/local/srv/MySQL/bin/mysqladmin -u root password
停止資料庫服務
$ sudo /RAID/local/srv/MySQL/bin/mysqladmin -p shutdown
$ /RAID/local/srv/MySQL/bin/mysql -u root -pPassword
mysql > GRANT ALL PRIVILEGES ON Database.* TO user@192.168.1.% IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES;
沒有留言:
張貼留言