iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >初始化mysql数据库
  • 542
分享到

初始化mysql数据库

2024-04-02 19:04:59 542人浏览 薄情痞子
摘要

无论你是编译安装,二进制安装,还是yum,rpm,装完Mysql都是要初始化才能用.下面来介绍下初始化安装mysql,切记安装前要准备好my.cnf文件~!怎么配置my.cnf,可以看我另一篇文章,有很多人

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

下面来介绍下初始化安装mysql,切记安装前要准备好my.cnf文件~!怎么配置my.cnf,可以看我另一篇文章,有很多人为了照顾初学者,直接跳过my.cnf的配置说明,我觉得是不合理的,数据库不是能用就好,是需要理解自己定义的好处和意义,真心建议大家先看那篇文章,找到自己想要的.

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

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

#创建数据目录
mkdir -p /data/mysql/data
#建立mysql用户组,并更改权限
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/
#拷贝服务启动文件,yum和rpm安装的可以不需要
cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#编辑my.cnf,可以看我另一篇文章来参考具体怎么设置,也可以用模板文件
cp -ar /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf
vim /usr/local/mysql/my.cnf

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

#查看已安装的rpm包中又没有mysql和mariadb的安装包
rpm -qa |grep -E 'mysql|mariadb'
mariadb-libs-5.5.44-2.el7.Centos.x86_64
#删除查找出来的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

要额外注意一个事情,如果存在~/.my.cnf和~/.mylogin.cnf,是默认先使用这个cnf配置文件的,并且是~/.my.cnf优先,就算你放到程序目录并用--defaults-file选项指定配置文件,都是会优先走这里,不走你指定的。不过,一般情况下是不会出现这种情况,系统也不会默认把文件放进这里,所以出现这种奇葩情况,基本上只会是人为原因。


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

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

确保mysql进程已停

service mysql stop

确保初始化的数据目录没有数据,由my.cnf定义的数据目录

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/mysql/bin/mysql -uroot  -p'新密码'


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

-5.7之后用新方式初始化

确保mysql进程已停

service mysql stop

确保初始化的数据目录没有数据,由my.cnf定义的数据目录

rm -rf /data/mysql/data/*

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

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

5.7的初始化采用了新的模式,虽然繁琐一些,但是也更安全.

程序会自动生成密码,不用这个密码你就不能登录,除非你进安全模式破密码.

或者把参数--initialize换成--initialize-insecure,初始化后可以免密码登录,这里不细说,各位可以慢慢测试.

查看初始化后的密码(密码信息在行的最后)的方法,

密码记录在数据目录的mysql.err里面,假设我的数据目录定义是/data/mysql/data,所以密码就应该是记录在/data/mysql/data/mysql.err里面,我直接截取出来看了.

sed -n '/password/p' /data/mysql/data/mysql.err
.....A temporary password is generated for root@localhost: GVedtgXDZ1-,

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

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

启动mysql

service mysql start

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

mysql -uroot -p'GVedtgXDZ1-,'

由于5.7之后,系统用户表有变化,直接用password是不行的,所以必须是下面的方法来这样改,不然改不了

mysql> alter user 'root'@'localhost' identified by '123';
mysql> set password for 'root'@'localhost'=password('123');
mysql> update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
mysql> flush privileges;

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

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数据库(初始化后做最佳)

-5.6,5.7通用加固方式

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

mysql> delete from mysql.user where user="root" and host!="localhost";
#在5.6的旧环境下,可能存在空密码的用户,这显然不被允许,5.7则没有这种用户,可以不做
mysql> delete from mysql.user where user="root" and password="";
mysql> flush privileges;

2.删除test库(5.7没了),因为这个库默认是所有人都有权限读写,存在漏洞

mysql> drop database test;

3.删除存放数据库的表信息,因为本来就还没有数据库信息,万一被注入就不好了。

mysql> delete from mysql.db;

4.SSL加密设置,用途就是把数据加密,防止被截取后破解,5.6要加ssl指定文件位置配置,5.7自动开,然后执行命令就可以了.

#执行命令,在数据目录创建key文件,下面这个命令是封装了整个创建过程,就不用做那么多复杂的事了
#不过这个命令文件是5.7新加入的,5.6中没有这个命令文件,但是可以放到在5.6上面用,还算方便.
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql/data/
#然后看看开启了没有
mysql>SHOW VARIABLES LIKE 'have_ssl';  
| have_ssl          | YES     |  
#进入mysql,授权ssl专用用户
mysql> grant all privileges on *.* to 'sslroot'@'%' identified by '123123' require ssl;
#用ssl专用用户登录
mysql -usslroot -p'123123' -h227.0.0.1
#查看当前状态,SSL已启用
mysql> \s
Current user:        sslroot@127.0.0.1
SSL:            Cipher in use is ECDHE-RSA-AES128-GCM-SHA256

不过开启SSL需要谨慎,因为数据进行了加密处理,毫无疑问服务器需要消耗资源来校验密文,官方说明可能会下降25%的性能,还是比较高的.

对于高并发的环境自然是性能下降明显,除非安全要求非常高,不然不建议开,一般来说只要授权限制访问IP是内网的就已经可以解决安全问题.


您可能感兴趣的文档:

--结束END--

本文标题: 初始化mysql数据库

本文链接: https://www.lsjlt.com/news/41037.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库服务器如何初始化
    小编给大家分享一下MySQL数据库服务器如何初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  风险性操作命令被强迫隐含重改...
    99+
    2024-04-02
  • win7怎么初始化mysql数据库失败
    win7系统中初始化mysql失败的解决方法首先,进入MySQL安装目录,在安装目录中查找到my.ini配置文件,并使用记事本打开;my.ini配置文件打开后,在文件中进行以下配置:[mysqld]port=3306basedir=“E:\...
    99+
    2024-04-02
  • mysql初始化数据库失败怎么办
    若 mysql 初始化数据库失败,可通过以下步骤解决:1. 检查 mysql 配置文件,确认 datadir 指定数据目录路径、user 和 password 指定用户名和密码。2. 创...
    99+
    2024-04-14
    mysql linux
  • 初始化话数据库错误
    重新安装数据库时 有可能产生系统结构错误,此时只要删除mysql下面的所有文件,初始化一个新的系统表结构即可 /usr/local/mysql/scripts/mysql_install_db --bas...
    99+
    2024-04-02
  • mysql初始化数据库失败怎么解决
    要解决mysql数据库初始化失败问题,请遵循以下步骤:检查权限并确保使用有适当权限的用户。如果数据库已存在,请删除它或选择不同的名称。如果表格已存在,请删除它或选择不同的名称。检查sql...
    99+
    2024-04-14
    mysql access mysql错误 sql语句
  • mysql初始化数据库的方法是什么
    要初始化一个数据库,可以通过以下步骤: 登录MySQL数据库服务器,可以使用如下命令: mysql -u root -p ...
    99+
    2024-05-06
    mysql
  • mysql_install_db - 初始化 MySQL 数据目录
    mysql_install_db 是 MySQL 的一个命令行工具,用于初始化 MySQL 数据目录。它会根据 MySQL 的安装路...
    99+
    2023-10-20
    MySQL
  • mysql 安装时初始化数据库一直失败
      Beginning configuration step: Writing configuration file Saving my.ini configuration file... Saved my.ini configurati...
    99+
    2023-09-20
    mysql sql database
  • mysql下载初始化数据库失败怎么办
    初始化 mysql 数据库失败可能是由于以下原因:服务未启动权限不足数据库已存在配置问题磁盘空间不足数据库引擎错误其他未知原因(可查看日志文件) MySQL 下载初始化数据库失败的解决...
    99+
    2024-04-22
    mysql
  • mysql初始化数据库要注意哪些事项
    在初始化MySQL数据库时,需要注意以下几个事项: 安全性:设置数据库管理员账户和密码,并限制远程访问权限,以防止未经授权的访问。...
    99+
    2024-05-06
    mysql
  • mysql下载初始化数据库失败怎么解决
    mysql 初始化数据库失败可通过以下步骤解决:1. 检查安装程序版本;2. 确保管理员权限;3. 关闭其他应用程序;4. 重新配置 mysql 配置文件(取消注释 innodb_flu...
    99+
    2024-04-22
    mysql
  • mysql下载初始化数据库失败如何解决
    如果您在下载和初始化MySQL数据库时遇到问题,可以尝试以下解决方案: 确保您已正确下载MySQL的安装包,并按照官方文档中的安...
    99+
    2024-04-09
    mysql 数据库
  • mysql下载初始化数据库失败怎么回事
    mysql 初始化数据库失败的原因包括:1. 系统权限不足;2. 安装文件损坏;3. 防火墙或安全软件阻止连接;4. 数据库端口冲突;5. 磁盘空间不足;6. 操作系统版本不兼容;7. ...
    99+
    2024-04-22
    mysql 系统版本
  • SpringBoot数据库初始化datasource配置方式
    目录I. 项目搭建1. 依赖2. 配置3. 初始化sqlII. 示例1. 验证demo2. 问题记录2.1 只有初始化数据data.sql,没有schema.sql时,不生效2.2 ...
    99+
    2022-12-22
    SpringBoot datasource配置 SpringBoot数据库初始化
  • MySQL数据库的初始化和常见的简单命令
    MySQL数据库的启动 1.初始化:    执行初始化操作,首先进入mysql的bin目录,在cmd窗口中执行命令。 mysqld --initialize --console 初始化会生成一个data目录,如果data目录已经存在,则需要...
    99+
    2023-09-23
    java
  • 云服务器怎么初始化数据库
    要初始化一个数据库,请按照以下步骤操作: 打开云服务器并登录到服务器: 在云服务器的控制台中,右键单击选中服务器名称,在弹出菜单中选择“服务器配置”。然后选择“数据库连接”选项。在该选项下,将会看到“连接到 MySQL 的服务器”和“...
    99+
    2023-10-26
    初始化 服务器 数据库
  • 数据库初始化及数据库服务端操作详解
    目录为什么要学习数据库?数据库的好处:数据库的概念:SQL语言的介绍SQL的优点数据库存储数据的原理MySQL服务端的操作1.服务端的登陆和退出2.MYSQL常见命令为什么要学习数据...
    99+
    2024-04-02
  • MYSQL的初始化
    #一 MYSQL安装后 应该进行初始化 ##首先配置好环境变量 在此电脑中的属性 配置信息如下 ## 初始化MYSQL 在mysql的根目录中创建一个my.ini的文档 my.in...
    99+
    2023-10-03
    mysql 数据库 Powered by 金山文档
  • MySQL 8.1安装及示例数据初始化
    1. 下载地址 https://dev.mysql.com/downloads/mysql/8.0.html 我这里没有采用installer安装,因为installer安装依赖visual stu...
    99+
    2023-09-24
    mysql adb android
  • 怎么理解数据库的初始化参数cursor_sharing
    本篇内容介绍了“怎么理解数据库的初始化参数cursor_sharing”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作