mariadb与mysql使用上其实相差不多,可以看下我另一篇关于MySQL的文章https://blog.youkuaiyun.com/wuguifa/article/details/86478308
源码编译
yum groupinstall "Development Tools"
yum install libaio libaio-devel bison bison-devel zlib-devel cmake openssl openssl-devel ncurses ncurses-devel libcurl-devel libarchive-devel boost boost-devel lsof jemalloc jemalloc-devel
ubuntu
## sudo apt-get install libncurses5-dev libgnutls-dev libbison-dev
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1
cp support-files/mysql.server /etc/init.d/mysqld
cp support-files/my-huge.cnf /etc/my.cnf
scripts/mysql_install_db --datadir=
chown -R mysql /data/mysql ##不更改权限会导致首次启动mysql失败
锁表
## flush tables with read lock ##所有库所有表都被锁定只读
一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。
## locak tables table_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}
这个命令是表级别的锁定,可以定制锁定某一个表。例如: lock tables test read; 不影响其他表的写操作。
## unlock tables
退出mysql终端的时候都会隐式的执行unlock tables。也就是如果要让表锁定生效就必须一直保持对话。
mysql表字符编码格式
show full columns from table_name;
alter table table_name default character set utf-8; ##修改表的字符编码格式
alter table table_name change 字段 字段 varchar(255) character set utf8mb4; ##修改表单个字段字符编码格式
alter table table_name convert to character set utf8; ##修改一张表的所有字段的编码格式
mariadb 10.12 通过frm & ibd 恢复数据过程
MySQL中.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关。
MySQL中.ibd文件:InnoDB引擎开启了独立表空间产生的存放该表的数据和索引的文件。
1、更改配置文件并重启mysql。
innodb_force_recovery=1 ##用来恢复表结构,数据和索引文件。
2、创建同名表(表结构不必相同)
创建完表之后不能 show columns和select 表的内容。
3、从备份库中拷贝frm 和idb文件替换新表文件。
4、修改frm 和ibd文件权限。
5、导出导入
ERROR 2059 (HY000): Plugin caching_sha2_password could not be loaded: 找不到指定的模块。
mysql8.0 默认加密认证方式caching_sha2_password
vim my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password