MySQL:Win/Linux环境安装及一键部署脚本
RPM是RedHat Package Manager的缩写,相当于Windows系统中的*.exe安装程序。(3)在打开的服务列表中查找mysql服务,如果没有mysql服务,说明本机没有安装mysql,反之,说明本机安装了mysql服务。用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。(4)以管理员权限打开cmd,进入mysql的bin文件下,依次执行命令。
目录
2.5 查看 MySQL 服务器端程序创建的系统用户和用户组
2.7 调用 mysqladmin 程序给MySQL 服务器设置root 账号的密码
1.Win安装MySQL
两种方式:
(1)exe可执行文件安装方式:mysql.exe安装方式
(2)zip、rar 解压包安装方式:以下为解压缩方式
1.1 确认本地是否安装mysql
(1)按【win+r】快捷键打开运行;
(2)输入services.msc,点击【确定】;
(3)在打开的服务列表中查找mysql服务,如果没有mysql服务,说明本机没有安装mysql,反之,说明本机安装了mysql服务。
1.2 下载MYSQL安装包
(1)点击mysql安装包下载链接:https://dev.mysql.com/downloads/mysql/,选择window版本,点击下载按钮,如下所示:
1.3 添加配置文件并安装mysql
(1)下载好mysql安装包后,将其解压到指定目录,并记下解压的目录,后续用于环境变量配置:
(2)在bin目录同级下创建一个文件,命名为my.ini
(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.4 修改 mysql 密码
(1)在本机启动mysql服务:
在任务管理器 - 服务 ,运行 mysql 。
(2)继续在cmd上执行以下命令:
mysql -uroot -p
回车后输入上面安装时保存的初始密码,进入mysql里面:
(3)在mysql里面继续执行以下命令:
//修改密码为123mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123mysql';
回车按照指引执行完后,代表密码修改成功,再输入exit;退出即可
1.5 配置环境变量
(1)进入电脑的环境变量
经过以上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
② 开启远程访问:
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;"
更多推荐
所有评论(0)