mariadb與mysql使用上其實相差不多,可以看下我另一篇關於MySQL的文章https://blog.csdn.net/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