由于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 里添加
-
[mysqld]
-
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/
浙公网安备 33010602011771号