內容轉載自:https://www.cnblogs.com/haima/p/12276063.htmlhtml
1.系統約定
安裝文件下載目錄:/data/software
Mysql目錄安裝位置:/usr/local/mysql
數據庫保存位置:/usr/local/mysql/data
日誌保存位置:/tmp/mysql_error.logmysql
2.下載mysql(這裏下載的是預編譯好的二進程mysql安裝包)
在官網:https://dev.mysql.com/downloads/mysql/
中,選擇如下版本的mysql下載:linux
根據本身系統的版本選擇32或者64位,這裏我選擇64位系統的
sql
建議:在windows上使用迅雷下載,速度很快,而後用工具(Xftp)上傳到 /usr/local/src目錄下;數據庫
或者直接下載到服務器上
複製下載地址wget+地址 (默認下載到當前目錄,本身找個目錄存)ubuntu
cd /usr/local/src wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
3.下載完成,解壓出來
tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
vim
4.移到解壓好的文件夾到/usr/local/mysql
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql cd /usr/local/mysql mkdir data //新建文件夾data mkdir mysql-files groupadd mysql //新建mysql組 useradd -g mysql mysql chown -R mysql:mysql /usr/local/mysql //修改MySQL安裝目錄和data數據中心的權限: cat /etc/passwd //查看用戶和分組信息:查看用戶列表 cat /etc/group //查看用戶組列表 chown -R mysql . //改變目錄屬有者 要在/usr/local/mysql目錄下 chgrp -R mysql .
5.修改mysql配置文件
vim /etc/my.cnf
windows
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql datadir=/usr/local/mysql/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M log_error=/tmp/mysql_error.log sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mkdir /var/lib/mysql
chmod 777 /var/lib/mysqlcentos
6.配置參數,獲取密碼的命令:
執行初化數據庫命令:bash
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
若是報錯缺乏插件,去百度libnuma.so.1搜一下,發現缺乏 numactl ,去下載安裝上 yum -y install numactl
再執行上面的初化數據庫命令
啓動成功後,看一下data文件目錄裏已經有數據了ll data
此處須要注意記錄生成的臨時密碼,如上文結尾處的
若是沒有顯示密碼,就使用下面的命令查看密碼:
cat /tmp/mysql_error.log
bin/mysql_ssl_rsa_setup --datadir=/usr/local/data/mysql
//設置ssl能夠不用執行
7.啓動MySQL服務器mysqld
root@haima-PC:~# /usr/local/mysql/support-files/mysql.server start Starting MySQL .Logging to '/tmp/mysql_error.log'. . ok
以上啓動成功了.
安裝時可能出現的三種報錯:
a.mysql服務已經啓動了,再次啓動會報錯.
若是像上圖一下報錯,就執行下面的操做,殺死進程,再執行,重啓
ps -aux|grep mysql
kill -9 1512 /usr/local/mysql/support-files start`
b.若是仍是不行,一直啓動不了,就把data文件夾刪除了,再從新建一下,
cd /usr/local/mysql rm -rf /data mkdir data //新建的data文件夾改權限改成group chown -R mysql:mysql /usr/local/mysql/data //改權限命令 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //再初始化一下 cat /tmp/mysql_error.log //查看一下密碼 ./support-files/mysql.server start //再啓動,就ok了
c.若是仍是不能夠,就把 安裝的/usr/local/mysql
文件夾刪除了,到/user/local/src裏把mysql文件再解壓出來再複製到/usr/local文件夾下,
把/etc/my.cnf刪除了,再從新建一下, 查一下若是有進程,殺死mysql進程, 重複 上面b的方法
9.設置好環境變量後,從新加載一下就能夠生效了
編輯profile文件vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
或者
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile /usr/local/mysql/support-files //若是是ubuntu加入這一句 source /etc/profile //刷新生效
鏈接數據庫
mysql -uroot -p密碼
//鏈接一下mysql
若是提示下面的錯誤:就用navicat連聯連,再修改密碼
Your password has expired. To log in you must change it using a client that supports expired passwords.其實只須要修改密碼就能夠了
alter user 'root'@'localhost' identified by 'whm2416@qq.com'; //修改帳號密碼 use mysql create user 用戶名@'%' identified by '密碼'; //建立帳號 haiama用戶名字 grant all privileges on *.* to 用戶名@'%' with grant option; //受權 FLUSH PRIVILEGES; //刷新 select version(); //查看版本 quit / exit //退出
設置開機啓動:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysqld chkconfig mysql on
啓動service mysql start
//centosmysql.server start
//ubuntu
重啓:service mysql restart
//centosmysql.server restart
//ubuntu
中止:service mysql stop
//centosmysql.server stop
//ubuntu
看啓動日誌:cat mysql_error.log
查看mysql狀態:service mysql status
中止mysql服務service mysql stop
或者殺進程:killall -9 mysql
若是沒有安裝killall能夠使用yum安裝yum provides killall
查出來psmisc-22.20-11.el7.x86_64
yum -y install psmisc-22.20-11.el7.x86_64
killall -9 mysql
忘記密碼,初使化密碼(須要提早備份數據,重置後,數據就都沒有了)
killall -9 mysql //中止mysql軟件
pkill -9 mysql //同上面的命令中止mysql軟件
rm -rf /usr/local/mysql/data //刪除data目錄 mkdir data //新建data文件夾 chown -R mysql.mysql /usr/local/mysql //添加權限 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初使化密碼,保存一下密碼 cat /tmp/mysql_error.log //查看密碼 mysql_ssl_rsa_setup //設置ssl service mysql start //啓動 mysql -uroot -p密碼 //登錄 alter user 'root'@'localhost' identified by 'whm****@**.com'; //修改帳號密碼 更改root密碼,須要帶數字,大寫字母,小寫字母,特殊符號 flush privileges;
一、修改 /etc/my.cnf,在 [mysqld] 小節下添加一行:skip-grant-tables=1
這一行配置讓 mysqld 啓動時不對密碼進行驗證
vim /etc/my.conf
加一行:skip-grant-tables=1
二、重啓 mysqld 服務:/usr/local/mysql/support-files/mysql.server restart
三、使用 root 用戶登陸到 mysql
:mysql -u root
alter user 'root'@'localhost' identified by 'whm****@***.com'; //修改帳號密碼 FLUSH PRIVILEGES; //刷新 quit
注意:若遠程工具鏈接不上,請用 iptables -F
命令來清除防火牆規則
MySql拓展
更改root密碼,須要帶數字,大寫字母,小寫字母,特殊符號
例:你的新密碼爲1qaz2wsx@!XLD
# SET PASSWORD = PASSWORD('你的新密碼'); # 上面的方式不行就用下面這個 ALTER USER USER() IDENTIFIED BY '你的新密碼'; # 設置密碼永不過時 ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; # 刷新MySQL的系統權限相關表 flush privileges;
根據我的需求,設置數據庫用戶在全部ip下以及在本地可訪問,如下用root用戶作演示
grant all privileges on *.* to root@"%" identified by "你的密碼" with grant option; //給把全部的ip地址開權限 grant all privileges on *.* to root@"localhost" identified by "你的密碼" with grant option; grant all privileges on *.* to 'root'@'113.46.90.222' identified by '12345' with grant option; //給指的ip地址開權限 grant all privileges on *.* to 'root'@'113.46.*.*' identified by '12345' with grant option; //給指的ip段開權限 flush privileges;
注意:若遠程工具鏈接不上,請用 iptables -F 命令來清除防火牆規則
新建用戶
CREATE USER 'xld_test'@'%' IDENTIFIED BY '你的密碼';
用戶受權
添加用戶權限: GRANT ALL ON databasename.tablename TO 'xld_test'@'%';
撤銷用戶權限: REVOKE ALL ON databasename.tablename TO 'xld_test'@'%';
刪除用戶及權限 :drop user 'xld_test'@'%';