2017年1月5日 星期四

[ EZGO 13 ] MariaDB 10.1.21

官方網站:https://mariadb.com/
檔案來源: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
      $ cmake \
              -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:
      • 如果有 /usr/bin/c++ 用 -DCMAKE_CXX_COMPILER=/usr/bin/c++ 
      • 如果有 /usr/bin/g++ 用 -DCMAKE_CXX_COMPILER=/usr/bin/g++
      $ make

      $ 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;

      沒有留言:

      張貼留言