数据库mariadb的搭建和管理

    xiaoxiao2022-07-14  155

    mariadb的概念

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

    与 MySQL 相比较,MariaDB 更强的地方在于:

    Maria 存储引擎 PBXT 存储引擎 XtraDB 存储引擎 FederatedX 存储引擎 更快的复制查询处理 线程池 更少的警告和bug 运行速度更快 更多的 Extensions (More index parts, new startup options etc) 更好的功能测试 数据表消除 慢查询日志的扩展统计 支持对 Unicode 的排序

    搭建mariadb

    实验环境

    重置虚拟机desktop, 设置主机名为(mysql.westos.com),配置ip 配置yum源 下载软件

    yum install mariadb-server.x86_64 -y

    下载好后开启,然后就可以直接用mysql命令来运行(默认为root用户登陆)

    [root@mysql ~]# systemctl start mariadb [root@mysql ~]# mysql

    但是这样十分不安全,我们需要重新设置

    mysql_secure_installation 数据库安全初始化

    设置后需要

    mysql -uroot -p 登陆

    输入密码 (密码也可以直接跟在-p后面,但十分不安全) 查看数据库接口

    netstat -antlupe | grep mysql 发现有暴露在外面的接口,不安全

    编辑配置文件 vim /etc/my.cnf

    [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 Settings user and group are ignored when systemd is used. If you need to run mysqld under a different user or group, customize your systemd unit file for mariadb according to the instructions in http://fedoraproject.org/wiki/Systemd skip-networking=1 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid include all files from the config directory !includedir /etc/my.cnf.d

    如上,加入skip-networking=1 开启 跳过网络接口 再查看接口 字段 相当于一列

    数据库管理 mysqladmin -uroot -pwestos password lee 当超级用户密码忘记时: systemctl stop mariadb mysqld_safe --skip-grant-tables & mysql update mysql.user set Password=password(‘westos’) where User=‘root’;

    kill -9 mysql的所有进程id

    systemctl start mariadb

    查询

    SHOW DATABASES; 查询数据库

    USE DATABASENAME; 进入数据库 SHOW TABLES; 查询表

    SELECT * FROM TABLE; 查看表的所有内容 SELECT Host(字段) FROM user(表格) WHERE User='root'(行); 指定查询

    ==注意;所有的操作后面都要加 ; ==

    建立

    SHOW DATABASES; ##列出库 CREATE DATABASE westos; ##建立库

    USE westos; ##进入库 CREATE TABLE linux ( ##建立表 -> username varchar(50) not null, -> password varchar(50) not null -> ); DESC linux; ##查看表结构

    INSERT INTO linux VALUES ('lee','123'); ##插入数据到linux表中 SELECT * FROM linux; ##查询所有字段在linux表中 SELECT username,password from linux; ##查询指定字段在linux表中

    注意;符号应是英文符,中文符不可以

    varchar 可变长数据类型 若定为5,则1-5个字符都可以 char 定长数据类型 若定为5,若输入一个字符则后四个字符,会自动空格补齐

    更改

    UPDATE linux SET password=password('lee') where username='lee'; 更改表格信息

    修改成功,但密码以明文显示,这样不安全

    ALTER TABLE linux ADD class varchar(20); 在表格里添加列

    ALTER TABLE linux DROP CLASS; 在表格里删除列

    ALTER TABLE linux ADD age varchar(20) AFTER password; 添加列到指定位置

    (不能添加到第一列,会造成数据丢失)

    ALTER TABLE linux RENAME redhat; 给表改名

    删除

    DELETE FROM redhat where username='lee'; DROP TABLE redhat; 删除表 DROP DATABASE westos; 删除数据库

    5数据库的备份

    mysqldump -uroot -pwestos westos > /mnt/wesots.sql mysqldump -uroot -pwestos westos --no-data mysqldump -uroot -pwestos --all-database mysqldump -uroot -pwestos --all-database --no-data

    恢复方式1

    mysql -uroot -pwestos -e "CREATE DATABASE westos;" mysql -uroot -pwestos westos < /mnt/westos.sql

    恢复方式2

    vim /mnt/westos.sql CREATE DATABASE westos; USE westos; mysql -uroot -pwestos < /mnt/westos.sql

    用户授权

    CREATE USER lee@'localhost' identified by 'westos'; GRANT SELECT,INSERT on westos.* TO lee@localhost; SHOW GRANTS FOR lee@localhost; REVOKE INSERT ON westos.* FROM lee@localhost; DROP USER westos@localhost FLUSH PRIVILEGES; ##刷新

    6 安装phpmyadmin 数据库图形管理

    1.下载phpMyAdmin-3.4.0-all-languages 2.yum install php php-mysql -y 3.systemctl restart httpd 4. tar jxf phpMyAdmin-3.4.0-all-languages ------- > /var/www/html 5.mv phpMyAdmin-3.4.0-all-languages mysqladmin 6.cd mysqladmin 7.cp config.sample.inc.php config.inc.php 8.vim config.inc.php $cfg['blowfish_secret'] = 'ba17c1ec07d65003';

    测试: http://172.25.254.100/mysqladmin

    最新回复(0)