查看創建的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 "開始創建 數據庫完成";