目录
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)exe可执行文件安装方式:mysql.exe安装方式
(2)zip、rar 解压包安装方式:以下为解压缩方式
(1)按【win+r】快捷键打开运行;
(2)输入services.msc,点击【确定】;
(3)在打开的服务列表中查找mysql服务,如果没有mysql服务,说明本机没有安装mysql,反之,说明本机安装了mysql服务。
(1)点击mysql安装包下载链接:https://dev.mysql.com/downloads/mysql/,选择window版本,点击下载按钮,如下所示:
(1)下载好mysql安装包后,将其解压到指定目录,并记下解压的目录,后续用于环境变量配置:
(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文件下,依次执行命令
在cmd上执行第一条命令:
//安装mysql 安装完成后Mysql会有一个随机密码
mysqld --initialize --console
执行后,在最后一行会生成初始化的访问密码,注意截图保存下来。
接下来在cmd执行第二条命令:
//安装mysql服务并启动
mysqld --install mysql
执行结果为:
Install/Remove of the Service Denied!
以上结果说明添加到系统服务成功了。
(5)移除系统服务的命令
//将mysql服务移除
service delete mysql
(1)在本机启动mysql服务:
在任务管理器 - 服务 ,运行 mysql 。
(2)继续在cmd上执行以下命令:
mysql -uroot -p
回车后输入上面安装时保存的初始密码,进入mysql里面:
(3)在mysql里面继续执行以下命令:
//修改密码为123mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123mysql';
回车按照指引执行完后,代表密码修改成功,再输入exit;退出即可
(1)进入电脑的环境变量
经过以上5个步骤,mysql终于可以安装结束了,需要注意:
mysql初始密码必须记住!!!!!用于登陆使用。
说明:基于RPM安装
RPM是RedHat Package Manager的缩写,相当于Windows系统中的*.exe安装程序。很多应用程序提供了RPM安装包。
卸载软件
rpm -e [软件包名]
安装软件
rpm -ivh [软件包名]
在卸载过程中忽略依赖关系
rpm -e --nodeps
在安装过程中忽略依赖关系
rpm -ivh --nodeps
注意:
rpm文件上传时需要以“二进制”形式上传。
如果使用文本形式上传,上传过程中会被重新编码,程序将不能正常工作。
不解压!
鉴于本人被腾讯云坑过,所以决定还是使用在线下载的方式进行安装
安装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
id mysql
mysqladmin --version
[root@VM_0_16_centos opt]# mysqladmin -u root password
New password:
Confirm new password:
[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]#
#!/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
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;"