https://downloads.mariadb.org/
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.6/source/mariadb-10.2.6.tar.gz
tar -zxf mariadb-10.2.6.tar.gz
cd mariadb-10.2.6
groupadd -r mariadb
useradd -g mariadb -r -M -s /sbin/nologin mariadb
mkdir /etc/mariadb
依赖 yum -y install gcc gcc-c++ make cmake ncurses ncurses libxml2 libxml2-devel openssl-devel bison bison-devel
cmake . -DMYSQL_UNIX_ADDR=/tmp/mariadb.sock -DSYSCONFDIR=/etc/mariadb -DMYSQL_TCP_PORT=3309 -DEXTRA_CHARSETS=all
-DMYSQL_USER=mariadb -DCMAKE_INSTALL_PREFIX=/data/mariadb -DMYSQL_DATADIR=/data/mariadb/data
-DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make -j 4
make install
cp support-files/my-large.cnf /etc/mariadb/my.cnf
配置/etc/mariadb/my.cnf
在[mysqld]模块添加下面的几行:
log-error=/var/log/mariadb_error.log
pid-file=/var/run/mysqld/mariadb.pid
user=mariadb
datadir=/data/mariadb/data
basedir=/data/mariadb/
新增加mysqld_safe块
[mysqld_safe]
log-error=/var/log/mariadb_error.log
pid-file=/var/run/mysqld/mariadb.pid
初始化 ./scripts/mysql_install_db --basedir=/data/mariadb/ --datadir=/data/mariadb/data/ --user=mariadb
--defaults-file=/etc/mariadb/my.cnf
cp support-files/mysql.server /etc/init.d/mariadb
chmod 755 /etc/init.d/mariadb
vim /etc/init.d/mariadb 避免和现有的mysql冲突,如果没有mysql可以不用修改
找到 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path"
改完 $bindir/mysqld_safe --defaults-file=/etc/mariadb/my.cnf --datadir="/data/mariadb/data"
--pid-file="/var/run/mysqld/mariadb.pid"
找到 parse_server_arguments `$print_defaults $extra_args --mysqld mysql.server`
改为 parse_server_arguments `$print_defaults $extra_args --defaults-file=/etc/mariadb/my.cnf mysqld`
启动前修下目录权限
# chown -R mariadb:mariadb /data/mariadb/
启动MariaDB:
# /etc/init.d/mariadb start
注:如果启动失败,查看下/var/log/mariadb_error.log文件看报什么错,修正即可。
设置root的密码
#/home/local/mariadb/bin/mysqladmin -u root password '123456'
进入MariaDB的shell下
[root@localhost mariadb]# /data/mariadb/bin/mysql -u root -p
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show engines\G;
MariaDB [mysql]>use mysql; //选择系统数据库mysql
MariaDB [mysql]>select Host,User,Password from user; //查看所有用户
MariaDB [mysql]>delete from user where password="";
MariaDB [mysql]>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '123456'; //为root添加
远程连接的能力
MariaDB [mysql]>flush privileges;
MariaDB [mysql]>select Host,User,Password from user; //确认密码为空的用户是否已全部删除
MariaDB [mysql]>exit;
设置防火墙,以便局域网内的其它服务器可以访问
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3309 -j ACCEPT
/etc/init.d/iptables restart