Maridb的yum安装网上教程很多,现在记录一下离线安装;
使用的Maridb的版本为:mariadb-10.3.8-linux-x86_64.tar.gz
(1)在centos7系统上,yum info mariadb可以找到提供mariadb包的官方网站,在到官方网站下载最新的mariadb包,然后rz到linux系统上去
(2)准备用户
useradd -r -d /data/madata -m -s /sbin/nologin mysql
#/data/madata是数据存放文件
(3)准备二进制程序
1.tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local //默认是放在/usr/local目录下
2.cd /usr/local
3.ln -s mariadb-10.2.8-linux-x86_64.tar.gz/ mysq //在/usr/local下, mariadb的数据库的目录已经生成,但是这个目录不符合要求,要求mariadb数据库必须放在mysql目录下,所以有两种方法解决,一是改名,将生成的mariadb数据库目录改为mysql,二是创建软链接,我们就选择创建软链接的方式
(4)准备配置文件
vim /etc/mysql/my.cnf
[client]
port = 3306
socket = /data/madata/mysql.sock
[mysqld]
user = mysql
port=3306
default-storage-engine = InnoDB
socket = /data/madata/mysql.sock
skip-external-locking
character-set-server = utf8
max_allowed_packet = 16M
max_connect_errors=65535
skip_name_resolve = ON
sysdate-is-now = 1
innodb = FORCE
datadir = /data/madata
log-bin = /var/lib/mysql/mysql-bin
auto_increment_increment=2
auto_increment_offset=2
log-slave-updates=on
#relay_log_recovery = 1
binlog_format=mixed #row
max_binlog_size=1024M
binlog_cache_size = 2M
expire-logs-days = 14
server-id = 189
sync-binlog = 1
query-cache-type = 0
query-cache-size = 0
max_connections=8192
thread-cache-size = 1024
open_files_limit=8192
table-definition-cache = 1024
table-definition-cache = 1024
max_prepared_stmt_count=200000
slow_query_log=on
slow_query_log_file=/var/lib/mysql/slow.log
log-error = /data/madata/mysql-error.log
log-queries-not-using-indexes = 1
long_query_time = 1
interactive_timeout = 28800
wait_timeout = 28800
lower_case_table_names=1
innodb-log-file-size = 512M
innodb-flush-log-at-trx-commit = 2
innodb-file-per-table = 1
innodb-buffer-pool-size = 16G
innodb_log_buffer_size = 8M
innodb_lock_wait_timeout = 150
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
max_heap_table_size = 2048M
tmp_table_size = 2048M
#innodb-log-files-in-group = 2
[mysqldump]
quick
max_allowed_packet = 512M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
(5)mysql用户授权
mkdir -p /var/lib/mysql
chown -R mysql /var/lib/mysql
chown mysql:mysql -Rf /usr/local/mysql 设置 mysql 目录的用户及用户组归属。
chmod +x -Rf /usr/local/mysql 赐予可执行权限
或者
在/usr/local/mysql目录中,执行如下操作
chown -R mysql .
chgrp -R mysql .
(6)创建数据库文件
1.cd /usr/local/mysql/
2../scripts/mysql_install_db --user=mysql --datadir=/data/madata //创建mysql的数据库,指定数据库的路径以及用户名身份,执行完之后就会在/app/mysqldb下生成了数据库文件。
注意:创建mysql的系统数据库,系统提供了一个脚本,我们直接可以利用它来生成mysql的系统数据库,这个脚本就在scripts下,但是不要进去运行脚本,否则会报错,必须在/usr/local/mysql/下运行脚本
3.ls /data/madata //查看一下生成的数据库文件
(7)准备日志文件
1.mkdir /var/log/mariadb/ //创建日志文件所在的目录
2.chown mysql /var/log/mariadb/ //因为是以mysql用户的身份来写日志的,所以创建了这个目录还必须修改一下其所属人为mysql,以保证mysql用户能对/var/log/mariadb/目录有写权限
(8)启动服务
1.cp support-files/mysql.server /etc/init.d/mysqld //在/usr/local/mysql/support-files目录下有一个现成的服务脚本,但是这个服务脚本必须放在规定的目录/etc/init.d/下才能使用,复制到这个目录下,并改名为mysqld,将来这个服务名就叫mysqld
2.chkconfig --add mysqld
3.service mysqld start //开启服务,成功开启服务之后,会打开了3306端口
4.ss -nutl //查看一下3306端口是否打开
5.开机启动
chkconfig mysqld on
(9)添加PATH变量,以方便来运行mysql程序
1.vim /etc/profile
PATH=/usr/local/mysql/bin:$PATH
2.source /etc/profile 使PATH生效。
(10)运行mysql安全脚本
1.cd /usr/local/mysql
2.mysql_secure_installation
(11)测试,运行一下mysql程序,-u指定用户,-p后面跟口令(该口令是上一步运行安全脚本给root用户设置的口令)
在忘记root密码的时候,可以这样
以windows为例:
1.进入mysql安装目录,打开my.ini文件
2.找到[mysqld]配置行(注意,不是[mysql]),在其下一行输入:skip-grant-tables(或者:--skip-grant-tables,两者区别是有时两个横线会导致服务无法重启需要测试应当添加否。)
3.cmd命令:services.msc,找到mysql服务并重启(使修改的配置文件生效)
4.mysql命令行:use mysql(进入系统配置库)
5.mysql命令行:update user set password=password("123") where user="root";(别忘了最后加分号,分号意味着命令的结束)
--新增用户
grant all on *.* to root@'localhost' identified by '123' with grant option;
6.mysql命令行:flush privileges;(刷新缓存,更新数据库读取的密码别忘了最后加分号,分号意味着命令的结束)
7.退出mysql,或重启服务,密码设置成功。