MariaDB:安装、配置、JAVA源代码样例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

      MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。

        MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字

1.设置yum源

参考:https://downloads.mariadb.org/mariadb/repositories/

选择操作系统的类型、版本、MariaDB的版本,会自动生成yum源

# MariaDB 5.5 RedHat repository list - created 2014-02-20 01:40 UTC

# http://mariadb.org/mariadb/repositories/

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/5.5/rhel6-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

2.安装mariaDB(Installing MariaDB with YUM)

参考:https://mariadb.com/kb/en/installing-mariadb-with-yum/

yum install MariaDB-server MariaDB-client

yum remove MariaDB-Galera-server

yum install MariaDB-Galera-server MariaDB-client galera

3.启动

/etc/init.d/mysql start

4.手工导入MariaDB Signing Key

rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

5.卸载mariadb

rpm -aq|grep -i mariadb|xargs rpm -e --nodeps

如果报:Running Transaction

Error in PREUN scriptlet in rpm package MariaDB-server

MariaDB-server-5.5.35-1.x86_64 was supposed to be removed but is not!

需要运行如下命令:

rpm -u --noscripts MariaDB-server-5.5.35-1.x86_64 

rm -rf /var/lib/mysql*

rm -rf /usr/share/mysql*

rm -rf /etc/rc.d/init.d/mysql

rm -rf /etc/my.cnf

6.修改root初始密码

mysqladmin -u root password 'root'

7.删除空用户,增强安全

delete from mysql.user where user='';

刷新权限表,以便可以使更改立即生效。

flush privileges;

8.远程登录配置

grant all privileges  on *.* to root@'%' identified by 'root' ;

flush privileges;


9.修改数据库目录

由于MySQL数据库目录占用磁盘比较大,而MySQL默认的数据文件存储目录为/"var/lib/mysql",所以我们要把目录移到"/data"根目录下的"mysqldata"目录中

cd /data

mkdir  mysqldata

把MySQL服务进程停掉

service mysql stop

mysqladmin -u root -p shutdown


复制数据库目录

把MySQL的数据文件移动到了"/data/mysqldata/mysql"下

mv /var/lib/mysql /data/mysqldata

修改my.conf文件

如果"/etc/"目录下没有my.cnf配置文件,请到"/usr/share/mysql/"下找到*.cnf文件,拷贝其中一个合适的配置文件到"/etc/"并改名为"my.cnf"中

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

修改后的内容如下:

[client]

port            = 3306

socket = /data/mysqldata/mysql/mysql.sock

default-character-set=utf8


[mysqld]

port            = 3306

socket  = /data/mysqldata/mysql/mysql.sock

datadir = /data/mysqldata/mysql

character-set-server=utf8

lower_case_table_names=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

vim /etc/rc.d/init.d/mysql

datadir=/data/mysqldata/mysql


启动MYSQL(如果不能启动,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试,必须要重启)

service mysql start

注意:aria存储引擎的一些配置,如aria_pagecache_buffer_size

      相关的参数可以通过命令查到:show variables like '%aria%'

10. JAVA源代码样例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Timestamp;

public class TestTime {
	public static void main(String[] args) throws Exception {

		Class.forName("org.mariadb.jdbc.Driver");

		Connection conn = DriverManager
				.getConnection(
						"jdbc:mariadb://xxx.xxx.xxx.xxx:3306/test?useUnicode=true&characterEncoding=GBK",
						"root", "root");

		// 数据插入测试
		String sql = "INSERT INTO test (id,name,dCreateTime) VALUES (?,?,?)";
		PreparedStatement stmt = conn.prepareStatement(sql);
		long iDate = System.currentTimeMillis();
		stmt.setInt(1, 3);
		stmt.setString(2, "test data insert");
		stmt.setTimestamp(3, new Timestamp(iDate));
		stmt.executeUpdate();

		// 数据查询
		Statement stmt2 = conn.createStatement();
		ResultSet rs = stmt2.executeQuery("select * from test");
		ResultSetMetaData meta = rs.getMetaData();
		int columnCount = meta.getColumnCount();
		while (rs.next()) {
			for (int i = 1; i <= columnCount; i++) {
				String colName = meta.getColumnLabel(i);
				System.out.println(colName + ":" + rs.getObject(i));
			}
		}
		
		//数据删除
		int result=stmt2.executeUpdate("delete from test");
		System.out.println(result);
		
		//数据统计
		rs=stmt2.executeQuery("select count(*) as cn from test");
		rs.next();
		System.out.println(rs.getObject("cn"));

	}
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
Java Android开发
【Java开发指南 | 第十八篇】Eclipse安装教程
【Java开发指南 | 第十八篇】Eclipse安装教程
7 2
|
3天前
|
移动开发 Oracle 前端开发
本地开发环境安装java8、java17与java21
本地开发环境安装java8、java17与java21
13 0
|
3天前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
|
5天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
17 1
|
6天前
|
Java 开发工具
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
|
10天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
14天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
21 1
|
16天前
|
Java Windows
java——安装JDK及配置解决常见问题
java——安装JDK及配置解决常见问题
|
7月前
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
256 0
|
7月前
|
NoSQL 关系型数据库 MySQL
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等,阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
123 0