由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突。所以本文建议直接安装mariadb。

输入命令

 systemctl start mysql.service

要启动MySQL数据库是却是这样的提示

Failed to start mysqld.service: Unit not found

解决方法如下:

首先需要安装mariadb-server

yum install -y mariadb-server

启动服务

systemctl start mariadb.service

添加到开机启动

systemctl enable mariadb.service

进行一些安全设置,以及修改数据库管理员密码

[zhaojq@localhost]$  mysql_secure_installation

在这里插入图片描述

mysql给root开启远程访问权限

use mysql;
select  User,authentication_string,Host from user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
flush privileges;

mysql -uroot -p输入密码

防火墙

systemctl start firewalld  # 启动friewall

systemctl status firewalld # 查看firewall启动情况

firewall-cmd --zone=public --add-port=3306/tcp --permanent   # 开启3306端口

firewalld # firewall-cmd --reload 重启

firewall-cmd --query-port=3306/tcp 查看3306端口是否开启


数据库备份

# 导出当前数据库的所有db,到一个文件中
1.mysqldump -u root -p --all-databases > /data/AllMysql.dump
2.登录mysql 导入数据
mysql -u root -p
> source /data/AllMysql.dump
3.通过命令导入数据
# 在登录时候,导入数据文件,一样可以写入数据
mysql -uroot -p < /data/AllMysql.dump








番外

方法3:修改密码 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

       mysql> UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;


ERROR 1118 (42000) at line 1278: Row size too large (> 8126)

在安装部署zabbix 时,将zabbix的sql文件导入mariadb时报错

就是导入的数据行太长了,

折腾吧

 

百度老爷虽然不给力,但是经过不懈努力,还是让我找到了解决方法。

在博客 https://www.ldr04.cn/56.html,

找到解决的办法,不过我在找到这条之前改过很多参数。

在 my.conf 里添加

  1.  
    [mysqld]
  2.  
    innodb_strict_mode = 0

结果就不报错了,大佬对这个的解释是

注: innodb_strict_mode设置影响CREATE TABLE,ALTER TABLE和CREATE INDEX语句的语法错误的处理。innodb_strict_mode还启用了记录大小检查,因此INSERT或UPDATE永远不会失败,因为记录对于所选页面大小而言太大。

 

然后我查了一下,这几个操作的区别

1、CREATE INDEX必须提供索引名,对于ALTER TABLE,将会自动创建,如果你不提供;
2、CREATE INDEX一个语句一次只能建立一个索引,ALTER TABLE可以在一个语句建立多个
3、只有ALTER TABLE 才能创建主键,

 

为了防止是多个参数作用才不报错,我把我的修改参数贴出来

max_allowed_packet = 256M #修改前是 16M
innodb_buffer_pool_size = 512M #修改前 54
innodb_log_file_size = 30M
innodb_log_buffer_size = 32M

#添加的
innodb_file_per_table = 1
innodb_large_prefix=1
innodb_file_format = Barracuda
innodb_strict_mode = 0

然后重启mariadb,就ok了。


1、卸载mariadb:

yum remove mariadb
  • 1

2、删除配置文件:

rm -f /etc/my.cnf
  • 1

3、删除数据目录:

rm -rf /var/lib/mysql/


posted on 2020-08-06 16:43  我有我的信仰  阅读(259)  评论(0)    收藏  举报