首页 > 数据库 >安装Mysql

安装Mysql

时间:2024-09-06 10:37:39浏览次数:7  
标签:opt -- root Mysql MySQL mysqld mysql 安装

1.下载Mysql

打开官网下载地址:https://downloads.mysql.com/archives/community/,按照截图所示下载即可。

选择对应的操作系统

Windows安装

 

1.下载到本地的安装包是zip包,选择一个指定目录进行解压,解压的过程就是安装的过程,解压后的位置就是MySQL的安装位置。
注意,安装目录不允许有中文、空格和其他特殊字符。

2.拷贝安装目录内的bin路径,并将其添加到系统的环境变量中。

3.MySQL安装目录下,手动创建my.ini文件

[mysqld]
# 默认端口
port=3306
# mysql的安装目录,也是工作目录
basedir=C:/mysql-5.7.20-winx64
# 数据库存放的目录,data目录无需手动创建,MySQL初始化成功,就会自动创建了
datadir=C:/mysql-5.7.20-winx64/data
# 错误日志,如果启动失败,可以查看这个错误日志,定位错误原因
log_error=C:/mysql-5.7.20-winx64/mysql.err

# 指定默认字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake=true

[client]
default-character-set=utf8mb4

[mysql]
# 可选的参数当你use到某个数据库中,路径上显示当前数据库的名字
# prompt=[\\d]>

# 关于字符集的设置
default-character-set=utf8mb4

注意,路径分隔符,不要用Windows默认的\,这样会有转义,很可能会导致安装失败,所以路径分隔符要用/

执行初始化:在任意路径下,以管理员的身份打开终端执行,注意必须是管理员权限!!!!否则报错!!!!!

mysqld --initialize-insecure

添加启动服务中:

# mysql57表示MySQL服务注册到Windows的服务中的名字
mysqld install mysql57

# 我在Windows上测了下,加--也行,但是好像没有不加--的好使,因为加--的好像从服务中删除不掉,不加--的就能行,所以还是推荐使用不加--的方式吧
# mysqld --install mysql57

# 补充一个删除注册的服务命令
mysqld remove mysql57
# mysqld --remove mysql57

创建密码

mysqladmin -uroot -p password 123

Q&A:

1.当执行初始化的时候,提示缺少MSVCP120.dll文件。

解决方法:打开microsoft官网:https://www.microsoft.com/en-us/download/details.aspx?id=40784,点击下载

根据系统数位选择下载

以管理员身份运行

 

2.应用程序无法正常启动(0xc000007b)。请单机"确定"关闭应用程序

解决方法:也是缺少dll文件或者某些文件损坏了。首先还是把上面那个Visual C ++扩展安装包安装下。重新以管理员身份运行

 

3.'mysqld' 不是内部或外部命令,也不是可运行的程序或批处理文件

解决办法:这很明显,是在环境变量中没有找到bin目录,而我们之前明明在系统的环境变量中添加了,却依然找不到,甚至重启电脑,还是不行。
在用户的变量中也添加上MySQL的bin目录,然后重新打开终端就好了

 

4.[ERROR] InnoDB: Header page consists of zero bytes in datafile: .\ibdata1, Space ID:0, Flags: 0. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.

解决方法:这个报错就是初始化成功(其实没成功,但没报错,误以为成功了),在服务中点击启动时,报的错。

要是打开其错误日志,你大概能找到的error就是跟ibdata有关的报错。

 

5.终端中使用net start命令,启动mysql也提示服务启动失败

在初始化成功(其实没成功,但初始化命令没报错,而且data目录中也没有mysql这三个初始的数据库,只有ibdata1等三个文件,这三个文件也有问题!),添加完服务之后,使用net命令启动mysqld失败,或者在服务中点击启动报错:

解决方法:在my.ini文件中追加:

# 追加下面这两行配置
innodb_data_file_path=ibdata1:12M;ibdata2:10M:autoextend
innodb_flush_method=normal

然后删掉之前注册的服务、再删掉之前初始化创建的有问题的data目录,然后再重新执行初始化过程应该就可以了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Centos 安装

卸载相关安装(这里的操作主要是避免不必要包管理方面的混乱)

yum update -y
yum remove -y mariadb*

1.安装依赖包

yum install -y epel-release
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel libaio-devel

2.下载,解压缩,重命名

[root@cs ~]# cd /opt/
[root@cs opt]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@cs opt]# tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@cs opt]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
[root@cs opt]# rm -rf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 
[root@cs opt]# ls
mysql

3.添加环境变量

[root@cs opt]# vim /etc/profile
# 添加如下内容
export PATH=/opt/mysql/bin:$PATH
# 然后source生效
[root@cs opt]# source /etc/profile

4.建立mysql用户组,管理该mysql:

[root@cs opt]# useradd mysql

5.创建相关目录并授权

[root@cs opt]# mkdir /data/mysql -p
[root@cs opt]# chown -R mysql:mysql /opt/mysql/*
[root@cs opt]# chown -R mysql:mysql /data/*

其中:

  • /opt/mysql/是MySQL软件所在目录。
  • /data/mysql是将来存放MySQL数据的目录。

6.初始化数据库

# 保证/data/mysql/目录是空的,避免不必要的问题
rm -rf /data/mysql/*
mysqld --initialize-insecure  --user=mysql --basedir=/opt/mysql --datadir=/data/mysql

[root@cs opt]# rm -rf /data/mysql/*
[root@cs opt]# mysqld --initialize-insecure  --user=mysql --basedir=/opt/mysql --datadir=/data/mysql
2020-06-08T01:25:34.199239Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-06-08T01:25:34.357149Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-06-08T01:25:34.381441Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-06-08T01:25:34.436113Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f352c664-a926-11ea-a90d-000c29872edd.
2020-06-08T01:25:34.437057Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-06-08T01:25:34.438213Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

上述参数,并不难理解:

  • --initialize-insecure,表示不安全的初始化。这个参数来自于--initialize参数,在MySQL5.7版本中,在初始化成功后,会生成一个临时密码,相对比较麻烦,所以这里改为--initialize-insecure,初始化时将root用户的登录密码设置为空。
  • --user=mysql,管理MySQL的用户是mysql
  • --basedir=/opt/mysql,是你MySQL的安装目录。
  • --datadir=/data/mysql,是管理数据的目录。
[root@CS opt]# ll /data/mysql/
总用量 110628
-rw-r----- 1 mysql mysql       56 11月 27 14:21 auto.cnf
-rw-r----- 1 mysql mysql      419 11月 27 14:21 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 11月 27 14:21 ibdata1
-rw-r----- 1 mysql mysql 50331648 11月 27 14:21 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 11月 27 14:21 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 11月 27 14:21 mysql
drwxr-x--- 2 mysql mysql     8192 11月 27 14:21 performance_schema
drwxr-x--- 2 mysql mysql     8192 11月 27 14:21 sys

7.编写配置文件:

[mysqld]
user=mysql
basedir=/opt/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>

prompt参数为登录进MySQL客户端的提示信息,当你use到指定的数据库中,该库名将显示在中括号内。

当然,这里提供一份关于字符集的设置的配置文件:

[mysqld]
user=mysql
basedir=/opt/software/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake=true

[client]
default-character-set=utf8mb4

[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8mb4
prompt=3306 [\\d]>

 

启动Mysql

1.我们可以使用MySQL自带的mysql.server启动MySQL服务。

[root@CS opt]# cd /opt/mysql/support-files/
[root@CS support-files]# ls
magic  mysqld_multi.server  mysql-log-rotate  mysql.server

2.在centos6中使用service管理服务

[root@cs opt]# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@CS opt]# service mysqld start
Starting MySQL. SUCCESS! 
[root@CS opt]# service mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL.
[root@CS opt]# service mysqld stop
Shutting down MySQL.. SUCCESS!

3.在centos7版本中,可以使用systemctl来替代service了。

编辑vim /etc/systemd/system/mysqld.service文件,内容如下:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

编辑内容中,只需要将ExecStart=/opt/mysql/bin/mysqld的路径改为你的MySQL安装目录即可,其他的照抄。

完事之后,你就可以使用systemctl命令来管理MySQL服务了,可用命令:

systemctl start mysqld
systemctl restart mysqld
systemctl stop mysqld
systemctl status mysqld
systemctl enable mysqld

 

 此时,我们能正常的启动/停止MySQL服务了,但在初始化MySQL的时候,我们还没有配置登录密码,现在,我们来创建密码。
为root用户(该用户为本地用户)创建密码:

mysqladmin -uroot -p password 123
#查看MySQL监听端口
netstat -lnp|grep 3306
ss -lnp|grep 3306
ps -ef|grep mysqld

 

 ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -------------------------------------------------------------------------------

MacOS

选择好对应的版本,直接安装即可。

 

# MySQL的安装目录
/usr/local/mysql

# MySQL的数据库目录
/usr/local/mysql/data

# MySQL启动脚本所在目录
/usr/local/mysql/support-files

# MySQL配置文件目录,注意,etc目录需要手动创建
/usr/local/mysql/etc/my.cnf

在MySQL安装目录下创建 etc/my.cnf 作为MySQL的配置文件

# 先cd到etc目录
cd /usr/local/mysql/etc

# 然后vim 创建my.cnf文件并添加如下内容,完事保存即可

[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

# 错误日志,需要手动创建 logs 目录
log_error=/usr/local/mysql/logs/error.log
# 指定默认字符集
character_set_server=utf8mb4

为了避免多个版本共存时,配置文件混乱的问题,建议大家还是把配置文件放在当前MySQL的安装目录下。

为了方便MySQL的启动和停止,我们需要将下面两个目录添加到~/.bash_profile中:

# 1. 打开~/.bash_profile文件
vim ~/.bash_profile

# 然后将下面的路径添加到这个文件中,如果这个文件非空,就添加到最后,如果文件是空的,就添加进去就好了
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/support-files

# 然后保存退出,执行source命令使其生效
source ~/.bash_profile

通过这种以mysql.server脚本的形式,内部是使用 mysqld_safe运行,可以守护我们的MySQL进程,如意外挂掉可自动重启。
mac的话,还有一种在系统偏好设置中搞,不推荐。

设置密码:

mysqladmin -uroot -p password 123

 

标签:opt,--,root,Mysql,MySQL,mysqld,mysql,安装
From: https://www.cnblogs.com/jjjyyylll/p/18399770

相关文章

  • Typora v1.9.5 激活版详细安装方法 (轻便简洁的Markdown编辑器)
    安装步骤附链接:https://pan.xunlei.com/s/VO643khkh2f5HyCW3j6ljJP5A1?pwd=mrsr#1、下载解压后将Typora.exe发送到桌面快捷方式2、启动桌面图标3、使用成功......
  • 小皮出现80端口被System占用以及Mysql服务无法启动的解决方法
    80端口被System占用的解决方法80端口一般被当做网页服务器的默认端口,使用本机搭建服务器环境的时候,都会默认使用80端口来作为网页访问端,但是有的时候80端口会被其他程序占用,导致Apache启动失败。下面介绍一下如果80端口被占用后应该如何处理。经过查询,发现占用80端口的确是......
  • Adobe Dimension DN 激活版详细安装方法
    安装步骤Adobe-Dimension-4.0.2.4133-m0nkrus.zip:https://pan.xunlei.com/s/VO644eTTcjLPoTKym9V0ER1CA1?pwd=22dr#1、解压后点击如下图运行2、选择安装路径,我选择的是D盘,建议别安装在系统盘(C盘)3、安装中,耐心等待2-5分钟4、安装完成,点击关闭5、左下角点击开始菜单栏,找到......
  • mysql索引优化
      1.联合索引,注意最左匹配原则:必须按照从左到右的顺序匹配,MySQL会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意......
  • 美团面试:mysql 索引失效?怎么解决? (重点知识,建议收藏,读10遍+)
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 安装了跑神经网络的环境,所遇到的问题及解惑1
    cuda:12.2cudnn:8.9.7tensorflow库:2.17.0(python310_test){9:37}/home/code/python➭pythonmnist_test.py2024-09-0609:39:29.473128:Eexternal/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261]UnabletoregistercuDNNfactory:Attemptingtoregister......
  • mysql分库表实现大宽表逻辑-canal/es
    大宽表落地背景mysql分库分表后,很多页面查询操作不走分片键,会导致数据库压力很大,查询效率极低的问题场景设计:设计一张索引表,以下叫大宽表,将需要查询的业务字段放到一张表解耦业务逻辑,业务不需主动维护此表利用canal-admin/canal-developer/canal-adatper+rocketMq......
  • Python使用MySQL数据库
    安装MySQL-python要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。下载地址:https://pypi.python.org/pypi/MySQL-python/下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:>>python setup.py install ......
  • Mysql高级篇(上)—— Mysql架构介绍(二)
    Mysql高级篇(上)MySQL架构介绍(二)逻辑架构逻辑架构剖析MySQL8.0中SQL执行流程Linux环境下MySQL8.0中SQL执行原理MySQL语法顺序Oracle中SQL执行流程(了解)数据库缓存池bufferpool(了解)存储引擎常见存储引擎简述InnoDB和MyISAM两种存储引擎的特点对比MySQL架构介绍(二)......
  • 【达梦】Docker安装达梦数据库 dm8
    1.docker启动达梦8镜像命令dockerrun-p5236:5236--namedmdb\-eLD_LIBRARY_PATH=/opt/dmdbms/bin\-ePAGE_SIZE=32\-eEXTENT_SIZE=32\-eLOG_SIZE=2048\-eUNICODE_FLAG=1\-eLENGTH_IN_CHAR=1\-eBLANK_PAD_MODE=1\-v/home/docker/dmdbms/data::/opt......