Kali中安裝mysql自動安裝腳本


查看創建的mysql用戶:

cat /etc/passwd | grep mysql

  安裝步驟:

1.先刪除mariadb

apt-get autoremove --purge mariadb-client-core-10.3
apt-get autoremove --purge

2.把mysql的壓縮包文件放入到/usr/local

3.執行解壓命令

tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

4.修改文件名

mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql

5.創建用戶:

 userdel mysql
 groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql

 6.切換到mysql用戶:

su mysql

 7.進入到安裝目錄:

cd mysql

8.執行初始數據命令:(這里安裝的5.7 其他版本可能不一樣)參考:https://www.cnblogs.com/xuanzhi201111/p/5148113.html

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

9.exit退出mysql用戶

10.拷貝文件:

cp support-files/mysql.server /etc/init.d/mysql
cp support-files/my-default.cnf /etc/my.cnf   (5.7沒有這個文件,自己找一個)
cp bin/mysql /usr/bin/

  11.創建log文件輸出路徑:

mkdir log
touch log/mysqld.log
chown -R mysql:mysql log/
chmod -R 755 log/mysqld.log

  12.修改配置文件vim /etc/init.d/mysql

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data  (這個拷貝文件中如果添加,就不需要改了)

  修改下配置文件:vim /etc/my.cnf

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
max_heap_table_size = 512M
[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
另外將被注釋掉的innodb_buffer_pool_size = 128M放開(缺省值是8M,在批量插入數據過多時會產生錯誤,memsql設置128即可,MySQL需要設置為9G)

  啟動數據庫:

service mysql start 

運行命令:vi /etc/my.cnf,編輯文件

在文件的[mysqld]標簽下添加一句:skip-grant-tables

service mysql stop

service mysql start

進入數據庫:mysql -u root

使用數據庫:use mysql;
運行:

update mysql.user set authentication_string=password('root') where user='root';    
root_password替換成你想要的密碼

  exit退出

把my.conf的skip-grant-tables刪除,重啟數據庫,

 修改自己的賬號:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

  刷新權限

flush privileges;

  退出:

quit;

設置訪問權限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

  刷新訪問權限表

flush privileges;
刷新服務:
service mysql restart
重啟服務:

service mysql restart;

添加用戶:

CREATE USER '用戶名'@'localhost' IDENTIFIED BY '密碼';

  自動安裝腳本:網上的好多都不能用。

#!/bin/bash
#coding: utf-8
#filename: mysql_install.sh
#version: 1.0
#desc: mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 安裝腳本
#attention: 需要 root 用戶執行

echo '1、判斷當前用戶是否為root用戶'
if [ $(id -u) != "0" ];then
	echo "error: you must be root run this script"
	exit 1
fi

echo '2、定義變量'
WKDIR=$(pwd)
INSTALL_HOME="/opt/module"
MYSQL_HOME="$INSTALL_HOME/mysql5.7"
MYSQL_DATA="$MYSQL_HOME/data"
MYSQLD_HOME="/var/run/mysqld/mysqld.sock"

[ -d $INSTALL_HOME ] || mkdir -p $INSTALL_HOME

echo ' 3、檢驗安裝目錄'
if [ -d $MYSQL_HOME ];then
	echo "erro: your system have installed mysql"
	exit 1
fi

echo ' 4、卸載系統自帶數據庫'
apt-get remove mariadb* -y
apt-get remove mysql-common -y

echo '5、開始安裝'
echo "start installing mysql"
echo ' 解壓'
echo "start tar..."
tar -xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.28-linux-glibc2.12-x86_64 $MYSQL_HOME
echo "tar complete"
[ -d $MYSQL_DATA ] || mkdir -p $MYSQL_DATA

echo ' 創建用戶'
id mysql > /dev/null 2>&1
if [ $? -ne 0 ];then
	useradd -s /sbin/nologin -M mysql
fi

echo ' 創建配置文件及日志目錄'
mkdir -p $MYSQL_HOME/etc
mkdir -p $MYSQL_HOME/logs
mkdir -p $MYSQL_HOME/tmp
mkdir -p /var/run/mysqld
chown  -R mysql:mysql /var/run/mysqld/
echo ' 更改 mysql 目錄所屬用戶和組'
chown -R mysql:mysql $MYSQL_HOME
echo "initializing mysql"

echo ' 初始化 mysql 數據庫'
$MYSQL_HOME/bin/mysqld --initialize --basedir=$MYSQL_HOME --datadir=$MYSQL_DATA --user=mysql

echo ' 創建配置文件'
cat >$MYSQL_HOME/etc/my.cnf<<EOF
[mysqld]
daemonize = on
user = mysql
port = 3306
skip-grant-tables
basedir = /opt/module/mysql5.7
datadir = /opt/module/mysql5.7/data
socket = /var/run/mysqld/mysqld.sock
pid-file = /opt/module/mysql5.7/tmp/mysqld.pid
log-error = /opt/module/mysql5.7/logs/mysqld.log

character-set-server=utf8
collation-server=utf8_general_ci
innodb_buffer_pool_size = 10G
innodb_log_file_size = 512M
max_heap_table_size=5120M
max_allowed_packet=100M
max_connections=1000
event_scheduler=ON
lower_case_table_names=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[client]
socket = /var/run/mysqld/mysqld.sock
default-character-set=utf8
EOF

echo ' 注冊服務'
cat >/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/opt/module/mysql5.7/bin/mysqld --defaults-file=/opt/module/mysql5.7/etc/my.cnf
LimitNOFILE = 5000
Restart=on-failure
PrivateTmp=false
EOF

echo ' 配置環境變量'
cat > /etc/profile.d/mysql.sh<<EOF
export PATH=$PATH:/opt/module/mysql5.7/bin
EOF

echo ' 使配置的環境變量生效'
source /etc/profile.d/mysql.sh
cp $MYSQL_HOME/bin/mysql  /usr/bin/
echo ' 啟動服務'
systemctl start mysqld
systemctl enable mysqld

#按照hydra
cd $WKDIR
dpkg -i libmariadb3_1%3a10.3.22-1_amd64.deb mysql-common_5.8+1.0.5_all.deb libmariadb3_1%3a10.3.22-1_amd64.deb mariadb-common_1%3a10.3.22-1_all.deb hydra_9.0-1_amd64.deb
#設置開機啟動
systemctl enable /lib/systemd/system/mysqld.service

echo "=======進入數據庫======="
    mysql --socket=$MYSQLD_HOME -uroot -e "update mysql.user set authentication_string=password('root') where user='root';"

echo "======刪除my.conf中的skip-grant-tablese刪除====="
    sed -i '5d' /opt/module/mysql5.7/etc/my.cnf;
    service mysqld restart


echo "=====設置root的訪問權限====="
    
	mysql --socket=$MYSQLD_HOME -uroot -proot --connect-expired-password -e "alter user 'root'@'localhost' identified by '';"
	mysql --socket=$MYSQLD_HOME -uroot -pblessme -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
	
echo "=====添加新的用戶======"	
    mysql --socket=$MYSQLD_HOME -uroot -pblessme -e "CREATE USER 'oms'@'localhost' IDENTIFIED BY '1234';"
    mysql --socket=$MYSQLD_HOME -uroot -pblessme -e "GRANT GRANT OPTION ON *.* TO 'oms'@'localhost';"
    mysql --socket=$MYSQLD_HOME -uroot -pblessme -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'oms'@'localhost';"
    mysql --socket=$MYSQLD_HOME -uroot -pblessme -e "ALTER USER 'oms'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';"
    service mysqld restart

echo "開始創建 數據庫";

mysql --socket=$MYSQLD_HOME -uoms -p1234 -e "create database dris_common default charset 'utf8' collate 'utf8_bin';"
mysql --socket=$MYSQLD_HOME -uoms -p1234 -e "create database dris_state default charset 'utf8' collate 'utf8_bin';"
mysql --socket=$MYSQLD_HOME -uoms -p1234 -e "create database dris_history default charset 'utf8' collate 'utf8_bin';"
mysql --socket=$MYSQLD_HOME -uoms -p1234 -e "create database dris_asset default charset 'utf8' collate 'utf8_bin';"
mysql --socket=$MYSQLD_HOME -uoms -p1234 -e "create database syslog default charset 'utf8' collate 'utf8_bin';"

mysql --socket=$MYSQLD_HOME -uoms -p1234 <<EOF
	use dris_common;
	source sql/dris_common.sql;
    use dris_state;
	source sql/dris_state.sql;
	use dris_history;
	source sql/dris_history.sql;
	use dris_asset;
	source sql/dris_asset.sql;
EOF

echo "開始創建 數據庫完成";

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM