初始化mysql数据库

无论你是编译安装,二进制安装,还是yum,rpm,装完mysql都是要初始化才能用.

下面来介绍下初始化安装mysql,安装前要准备好my.cnf文件噢~!怎么配置my.cnf,可以看我另一篇文章.

不过要注意的是,发行版和版本号的不同,有些参数会不同或不可用,会导致初始化失败,这时需要去初始化的数据目录查看mysql.err,看看那个参数有问题,然后屏蔽了,重新再初始化一次.

-前置步骤,已做就可以不用理会

mkdir -p /data/mysql/data
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
chown -R mysql.mysql /data/mysql/data
mkdir /data/mysql/tmp
chown -R mysql.mysql /data/mysql/tmp/

-注意:操作前要确保没有其他mysql发行版干扰,特别是yum安装的和rpm安装,

rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
rpm -e --nodeps mysql.x86_64

额外说明:--nodeps是不检查依赖,不要害怕,即使有依赖你自己的安装包都肯定有,做软连接就好了

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18

-------------------------这条分割线上面的无论是什么版本都要做噢~!--------------------------

-5.6及之前的版本初始化步骤(包括5.6)

确保mysql进程已停

service mysql stop

确保初始化的数据目录没有数据

rm -rf /data/mysql/data*

执行初始化脚本,添加参数,切记要先编辑好my.cnf

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --user=mysql > /dev/null 2>&1

启动mysql

service mysql start

初始化密码

/usr/local/mysql/bin/mysqladmin -u root password ‘新密码‘

#初始化完成,尝试登陆

/usr/local/services/mysql/bin/mysql -uroot  -p‘新密码‘

------------------------------我是分割线---------------------------------

-5.7之后用新方式

确保mysql进程已停

service mysql stop

确保初始化的数据目录没有数据

rm -rf /data/mysql/data*

执行初始化命令,指定defaults-file且并必须放到最前面,切记要先编辑好my.cnf

mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize

查看初始化后的密码(密码信息在最后),5.7的初始化比较特别,会自动生成密码,不用这个密码你就不能登录,除非你进安全模式破密码,或者把参数--initialize换成--initialize-insecure,初始化后可以免密码登录.

sed -n ‘/password/p‘ /data/mysql/data/mysql.err
.....A temporary password is generated for [email protected]: GVedtgXDZ1-,

更改一下数据目录的属主权限,初始化并没有改这个属主问题,不改的话会启动不了

chown -R mysql:mysql /data/mysql/data/

启动mysql

service mysql start

密码还要初始化,虽然初始化数据库的时候已经有密码,可以直接登录,但是初始化还没真正完成,不然会报错,提示你改密码

mysql -uroot -p‘GVedtgXDZ1-,‘

还必须是下面这样改,不然改不了

mysql> alter user ‘root‘@‘localhost‘ identified by ‘123‘;
mysql> set password for ‘root‘@‘localhost‘=password(‘123‘);

这时候才算初始化完成,尝试你设定的新密码登录吧

mysql -uroot -p‘123‘

-扩展阅读:mysql 5.7增加了两个字段password_last_changed、password_lifetime来完善安全策略,可以设置参数default_password_lifetime来延长使用期限

ALTER USER ‘root‘@localhost‘ PASSWORD EXPIRE INTERVAL 90 DAYS;
ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;
ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE DEFAULT;

---------------------------------我也是分割线-----------------------------------

初始化完了就真的完了吗?最好还是做个安全加固吧.

安全加固mysql数据库(初始化后做最佳)

删除任何无关的管理员用户和空密码的管理员用户,有需求再开

delete from mysql.user where user="root" and host!="localhost";
delete from mysql.user where user="root" and password="";
flush privileges;

删除test库,因为这个库默认是所有人都有权限读写,存在漏洞

drop database test;

删除存放数据库的表信息,因为还没有数据库信息。

delete from mysql.db;

其实5.7对安全做得比较好,上面这些做不做相差并不大,不过多做一步也更安全一些.

时间: 2024-10-05 23:27:08

初始化mysql数据库的相关文章

EF初始化mysql数据库codefirst

EF使用Code First修改生成数据库表名的方法 1. 重写OnModelCreating,去掉表名复数 System.Data.Entity.ModelConfiguration.Conventions; public class MovieDBContext : DbContext     {         public DbSet<Movie> Movies { get; set; }         protected override void OnModelCreating(

初始化MYSQL数据库遇到一些问题

初始化MYSQL数据库的时候提示缺少perl和data::dumper 这个时候需要安装两个包, yum install perl yum install autoconf 初始化MYSQL数据库的时候提示innodb数据库文件大小错误 2018-08-28 18:01:51 26794 [ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 768 pages (rounded down to MB)

应用EF初始化Mysql数据库不能使用中文的处理方法

问题描述: 在应用ASP.NET EF Core时,采用了第三方的工具.在初始化Mysql数据时,中文不被支持,报错,改为英文就可以. 问题分析: 查看生产的数据库表,发现字符集是latin1,该字符集不支持中文,在里面直接修改内容为中文一样会报错. 解决方法: 修改My.ini(修改前需要先关闭mysql服务) [mysql]default-character-set = utf8mb4 [mysqld]character-set-server = utf8mb4 修改后不要直接保存,直接保存

初始化mysql数据库——Activiti BPM

1 package com.initialize; 2 3 import org.activiti.engine.ProcessEngine; 4 import org.activiti.engine.ProcessEngineConfiguration; 5 import org.junit.Test; 6 7 public class TestActiviti { 8 /** 使用代码创建工作流所需的25张表 **/ 9 @Test 10 public void test() { 11 Pr

初始化mysql数据库 /usr/bin/mysql_install_db执行时报错

错误描述: FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db:Data::Dumper 解决办法: 安装autoconf库 yum -y install autoconf 再次运行 /usr/bin/mysql_install_db,错误解决. 原文地址:https://www.cnblogs.com/syq816/p/8582628.html

CentOS6.4下Mysql数据库的安装与配置

转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同

Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同

Linux CentOS6.4下Mysql数据库的安装与配置

一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱不得不首先推荐的是mysql数据库了,而且Mysql数据库的第一个版本就是发行在Linux系统上的. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内

Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】

如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk.tomcat.eclipse我们就已经能进行我们的程序开发了,但是如果要做一个项目,哪怕是小的不能再小的项目都离不开数