目录

1.Win安装MySQL

1.1 确认本地是否安装mysql

 1.2 下载MYSQL安装包

 1.3 添加配置文件并安装mysql

1.4 修改 mysql 密码

1.5 配置环境变量

2. Linux 安装MySQL

2.1 RPM说明

2.2 RPM命令主要用法

2.3 上传 M有SQL的RPM包 (使用腾讯云时不建议)

2.4 安装过程

2.5 查看 MySQL 服务器端程序创建的系统用户和用户组

2.6 查看mysql 版本

2.7 调用 mysqladmin 程序给MySQL 服务器设置root 账号的密码

2.8 登录mysql 服务器

3. 一键部署脚本


1.Win安装MySQL

两种方式:

(1)exe可执行文件安装方式:mysql.exe安装方式

(2)zip、rar 解压包安装方式:以下为解压缩方式

1.1 确认本地是否安装mysql

(1)按【win+r】快捷键打开运行;
(2)输入services.msc,点击【确定】;

mysql一键安装脚本windows mysql一键部署_mysql一键安装脚本windows

(3)在打开的服务列表中查找mysql服务,如果没有mysql服务,说明本机没有安装mysql,反之,说明本机安装了mysql服务。

mysql一键安装脚本windows mysql一键部署_mysql一键安装脚本windows_02

 1.2 下载MYSQL安装包

(1)点击mysql安装包下载链接:https://dev.mysql.com/downloads/mysql/,选择window版本,点击下载按钮,如下所示:

mysql一键安装脚本windows mysql一键部署_linux_03

mysql一键安装脚本windows mysql一键部署_一键部署_04

 1.3 添加配置文件并安装mysql

(1)下载好mysql安装包后,将其解压到指定目录,并记下解压的目录,后续用于环境变量配置:

mysql一键安装脚本windows mysql一键部署_linux_05

(2)在bin目录同级下创建一个文件,命名为my.ini

mysql一键安装脚本windows mysql一键部署_数据库_06

(3)编辑my.ini文件,文件内容如下: 

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ---这里输入你安装的文件路径----
basedir=H:\Development software Installation\mysql-8.0.32-winx64
# 设置mysql数据库的数据的存放目录
datadir=H:\Development software Installation\mysql-8.0.32-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 有两点需要注意修改的:
① basedir这里输入的是mysql解压存放的文件路径
② datadir这里设置mysql数据库的数据存放目录

 (4)以管理员权限打开cmd,进入mysql的bin文件下,依次执行命令

mysql一键安装脚本windows mysql一键部署_linux_07

mysql一键安装脚本windows mysql一键部署_一键部署_08

在cmd上执行第一条命令:

//安装mysql  安装完成后Mysql会有一个随机密码
mysqld --initialize --console

在最后一行会生成初始化的访问密码,注意截图保存下来。

接下来在cmd执行第二条命令:

//安装mysql服务并启动   
mysqld --install mysql

 执行结果为:

Install/Remove of the Service Denied!

 以上结果说明添加到系统服务成功了。

(5)移除系统服务的命令

//将mysql服务移除  
service delete mysql

1.4 修改 mysql 密码

(1)在本机启动mysql服务:

mysql一键安装脚本windows mysql一键部署_linux_09

在任务管理器 - 服务 ,运行  mysql 。

(2)继续在cmd上执行以下命令:

mysql -uroot -p

 回车后输入上面安装时保存的初始密码,进入mysql里面:

mysql一键安装脚本windows mysql一键部署_一键部署_10

(3)在mysql里面继续执行以下命令:

//修改密码为123mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123mysql';

 回车按照指引执行完后,代表密码修改成功,再输入exit;退出即可

1.5 配置环境变量

(1)进入电脑的环境变量

 

mysql一键安装脚本windows mysql一键部署_linux_11

 

mysql一键安装脚本windows mysql一键部署_linux_12

经过以上5个步骤,mysql终于可以安装结束了,需要注意:
mysql初始密码必须记住!!!!!用于登陆使用。

2. Linux 安装MySQL

说明:基于RPM安装

2.1 RPM说明

    RPM是RedHat Package Manager的缩写,相当于Windows系统中的*.exe安装程序。很多应用程序提供了RPM安装包。

2.2 RPM命令主要用法

卸载软件   

rpm -e [软件包名]

安装软件

rpm -ivh [软件包名]

在卸载过程中忽略依赖关系

rpm -e --nodeps

在安装过程中忽略依赖关系

rpm -ivh --nodeps

2.3 上传 M有SQL的RPM包 (使用腾讯云时不建议)

注意:

    rpm文件上传时需要以“二进制”形式上传。

    如果使用文本形式上传,上传过程中会被重新编码,程序将不能正常工作。

    不解压!

2.4 安装过程

鉴于本人被腾讯云坑过,所以决定还是使用在线下载的方式进行安装

安装mysql

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y

重启mysql

service mysqld restart

2.5 查看 MySQL 服务器端程序创建的系统用户和用户组

id mysql

2.6 查看mysql 版本

mysqladmin --version

2.7 调用 mysqladmin 程序给MySQL 服务器设置root 账号的密码

[root@VM_0_16_centos opt]# mysqladmin -u root password
    New password:
    Confirm new password:

2.8 登录mysql 服务器

[root@VM_0_16_centos opt]# mysql -u root -p
    Enter password:

补充: 修改MySQL服务器访问权限

①登录Mysql 服务器

②show databases;

mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    3 rows in set (0.00 sec)

③use mysql;

mysql> use mysql;
    Database changed

④查看user 表部分内容

mysql> select host,user,password from user;
    +-------------------+------+-------------------------------------------+
    | host              | user | password                                  |
    +-------------------+------+-------------------------------------------+
    | localhost         | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    | vm\_0\_16\_centos | root |                                           |
    | 127.0.0.1         | root |                                           |
    | ::1               | root |                                           |
    | localhost         |      |                                           |
    | vm\_0\_16\_centos |      |                                           |
    +-------------------+------+-------------------------------------------+
    6 rows in set (0.00 sec)

⑤插入特定数据

mysql> insert into user(host,user,password)  values  ('%','root','81F5E21E35407D884A6CD4A731AEBFB6AF209E1B');

注意: 有些版本,不能直接 insert 插入新的用户,需使用以下 的方法:

    正确的添加用户方法:  

GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

    用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。

⑥再次查看user表内容

mysql> select host,user,password from user;
    +-------------------+------+-------------------------------------------+
    | host              | user | password                                  |
    +-------------------+------+-------------------------------------------+
    | localhost         | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    | vm\_0\_16\_centos | root |                                           |
    | 127.0.0.1         | root |                                           |
    | ::1               | root |                                           |
    | localhost         |      |                                           |
    | vm\_0\_16\_centos |      |                                           |
    | %                 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    +-------------------+------+-------------------------------------------+

⑦为root @ % 授权

   

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
 Query OK, 0 rows affected (0.00 sec)

⑧退出MYSQL

mysql> exit;
    Bye

⑨重启MySQL服务

[root@VM_0_16_centos opt]# service mysql restart;
    Redirecting to /bin/systemctl restart  mysql.service

    或

[root@VM_0_16_centos opt]# systemctl restart mysql.service
    [root@VM_0_16_centos opt]#

3. MySQL连接常见问题

(1)案例1

错误产生环境

使用主机的Navicat 工具无法连接到虚拟机里的mysql数据库

错误描述

2003-Can't connect to MySQL server on '192.168.1.169" (10060 "Unknown error")

该问题原因有2点: ①没有关闭网关,3306端口被网关拦截了;② 没有开启远程连接

解决方案:

① 关闭网关: systemctl stop firewalld.service

② 开启远程访问:

mysql一键安装脚本windows mysql一键部署_数据库_13

4. 一键部署脚本

#!/bin/sh
package_name=mysql-boost-5.7.34.tar.gz
software_path=/usr/local
package_path=$software_path/mysql
mysql_dataDir=$package_path/data
mysql_mandir=/usr/share/man
mysql_source_path=$software_path/mysql-5.7.34
mysql_boost_path=$software_path/mysql-5.7.34/boost
etc_path=/etc
newpasswd=123456
compress_name=mysql.tar.gz


#安装MySQL所需的依赖包、用户、用户组
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake      
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql

cd $software_path

#下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.34.tar.gz


echo $software_path/$package_name..........
#解压
tar xf $software_path/$package_name


echo "unpackage"
echo cd $mysql_source_path
cd $mysql_source_path

echo cmake..........

mkdir $package_path
mkdir $mysql_dataDir

cmake . \
-DWITH_BOOST=$mysql_boost_path -DCMAKE_INSTALL_PREFIX=$package_path -DSYSCONFDIR=$etc_path -DMYSQL_DATADIR=$mysql_dataDir -DINSTALL_MANDIR=/usr/share/man -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=$mysql_dataDir/mysql.sock -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1

echo make........
# 编译
make 

# 编译安装      
make install 


echo "makeInstall"
makeInstall


echo "1--------初始化mysql"
cd $package_path
mkdir mysql-files
chown -R mysql.mysql $package_path

#进入/usr/local/mysql/bin目录
echo "cd /usr/local/mysql/bin"
cd $package_path/bin

echo "./mysqld  --initialize --user=mysql --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data  &>passwd.txt"
#初始化mysql,使用 > 将结果写入 txt ,用来获取密码
./mysqld  --initialize --user=mysql --basedir=$package_path  --datadir=$package_path/data  &>passwd.txt

echo "./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data/"
#让mysql支持ssl方式登录的设置
./mysql_ssl_rsa_setup --datadir=$package_path/data/

cd $package_path/bin
echo "tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')"
#获得临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
  #$NF表示最后一个字段
  # abc=$(命令)  优先执行命令,然后将结果赋值给abc 

# 修改PATH变量,加入mysql bin目录的路径
#临时修改PATH变量的值
export PATH=/usr/local/mysql/bin/:$PATH
source /etc/profile
#重新启动linux系统后也生效,永久修改
echo  'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc

#复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp  ../support-files/mysql.server   /etc/init.d/mysqld

#修改/etc/init.d/mysqld脚本文件里的datadir目录的值,使用 \ 来转义空格
sed  -i '70c  \    datadir='$package_path'/data'  /etc/init.d/mysqld

#生成/etc/my.cnf配置文件
cat  >/etc/my.cnf  <<EOF
[mysqld_safe]

[client]
socket=$package_path/data/mysql.sock

[mysqld]
socket=$package_path/data/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
basedir=$package_path
datadir=$package_path/data

[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>

EOF

echo "ulimit -n 10000"
#修改内核的open file的数量
ulimit -n 1000000
#设置开机启动的时候也配置生效
echo "ulimit -n 1000000" >>/etc/rc.local
chmod +x /etc/rc.d/rc.local


#从配置启动mysql
/etc/init.d/mysqld restart


#echo "修改密码"
#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令  execute 执行
# 密码自己设置
echo 'mysqladmin -uroot '-p$tem_passwd' password '$newpasswd''
mysqladmin -uroot -p$tem_passwd password $newpasswd

cd $package_path/bin
echo $newpasswd > passwd.txt

echo "登录mysql,检验密码是否修改成功"
#检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功。
mysql -uroot -p''$newpasswd''  -e "show databases;"