標籤:mysql
一、mysql安裝
yum install -y mysql mysql-server mysql-devel
二、mysql初始化
rpm包安裝的mysql第一次啟動就會自動初始化 #建立一些相關檔案,建立一些mysql初始資料庫,提 示mysql 預設管理使用者root設定密碼,預設沒有 密碼
三、啟動mysql
service mysqld start
設定mysql預設管理使用者root設定密碼 預設沒有密碼
mysqladmin -u root password ‘1234567‘ #第一次root沒有密碼四、修改mysql使用者密碼a. mysqladmin命令(要退出mysql 回到linux中) 格式如下(其中,USER為使用者名稱,PASSWORD為新密碼): mysqladmin -u USER -p password PASSWORD 該命令之後會提示輸入原密碼,輸入正確後即可修改。 例如,設定root使用者的密碼為123456,則 mysqladmin -u root -p password 123456b. UPDATE user 語句(回目錄) 這種方式必須是先用root帳戶登入mysql,然後執行: UPDATE user SET password=PASSWORD(‘123456‘) WHERE user=‘root‘; FLUSH PRIVILEGES;c. SET PASSWORD 語句(回目錄) 這種方式也需要先用root命令登入mysql,然後執行: SET PASSWORD FOR root=PASSWORD(‘123456‘);
linux下mysql的root密碼忘記解決方
1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地串連MySQL資料庫。
因為在重新設定MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的
狀態下,其他的使用者也可以任意地登入和修改MySQL的資訊。可以採用將MySQL對
外的連接埠封閉,並且停止Apache以及所有的使用者進程的方法實現伺服器的准安全
狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。
2.修改MySQL的登入設定:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
儲存並且退出vi。
3.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登入並修改MySQL的root密碼
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the buffer.
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( ‘new-password‘ ) WHERE User = ‘root‘ ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5.將MySQL的登入設定修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
儲存並且退出vi。
6.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
六、登入mysql伺服器
如果root沒有設密碼就可以直接用mysql就登入了本地的Mysql伺服器
mysql -u root -p
或者mysql -u root -p1234567
或者mysql -u root -p 1234567
或者mysql -uroot -p1234567
mysql -h 192.168.100.10 -u root -p # -h 指定登入的遠程mysql伺服器 不指定就是預設登入 原生mysql伺服器
mysql -P 3308 192.168.100.10 -u root -p # -P(大寫)指定mysql伺服器的連接埠,預設的3306 就可以不寫,改了連接埠後在本機上登入還是可以 不用寫
mysql -P 3308 192.168.100.10 -D xxj -u root -p # -D 指定登入mysql伺服器後指定所連的數 據庫是xxj
登入mysql登入資料庫後,如何查看當前正在使用的資料庫?
a. 通過函數database()實現
mysql> SELECT database();
b. 通過show tables實現
mysql> show tables;
註:注意查看列頭形式, 格式為:Tables_in_[db_name]
c. 通過status實現
mysql> status;
註:注意結果中的"Current database"資訊
查看資料庫的版本 SELECT VERSION();
2、允許mysql遠端存取,可以使用以下三種方式:
a、改表。
mysql -u root –pmysql>use mysql;mysql>update user set host = ‘%‘ where user = ‘root‘;mysql>select host, user from user;
b、授權。
例如,你想root使用123456從任何主機串連到mysql伺服器。
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
如果你想允許使用者jack從ip為10.10.50.127的主機串連到mysql伺服器,並使用654321作為密碼
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘jack‘@’10.10.50.127’ IDENTIFIED BY ‘654321‘ WITH GRANT OPTION;mysql>FLUSH RIVILEGES
c:在安裝mysql的機器上運行: #這裡不知道是不是一定要到Mysql伺服器本機上去操作,好像SSH遠程登入 上去改沒有用
//進入MySQL伺服器d:\mysql\bin\>mysql -h localhost -u root//賦予任何主機訪問資料的許可權mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ WITH GRANT OPTION//使修改生效mysql>FLUSH PRIVILEGES//退出MySQL伺服器mysql>EXIT
mysql -h 127.0.0.1與localhost區別
1. mysql -h 127.0.0.1 的時候,使用TCP/IP串連,
mysql server 認為該串連來自於127.0.0.1或者是"localhost.localdomain"
2. mysql -h localhost 的時候,是不使用TCP/IP串連的,而使用Unix socket;
此時,mysql server則認為該client是來自"localhost"
3. mysql許可權管理中的"localhost"有特定含義:
—— MySQL手冊 5.6.4 ..... A Host value may be a hostname or an IP number, or ‘localhost‘ to indicate the local host.
七、 mysql相關檔案
/etc/my.cnf #mysql設定檔
/var/lib/mysql/ #mysql預設資料存放目錄
/var/log/mysqld.log #mysql預設記錄檔
預設使用3306連接埠
[[email protected] ~]# cat /etc/my.cnf[mysqld]datadir=/var/lib/mysql #定義mysql資料存放目錄,socket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
[[email protected] ~]# ls /var/lib/mysql/ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test mysql> show databases;+--------------------+| Database | #預設有這3個資料庫+--------------------+| information_schema | | mysql || test |+--------------------+3 rows in set (0.00 sec)mysql> CREATE DATABASE xxj;Query OK, 1 row affected (0.00 sec)mysql> SHOW DATABASE;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the ri
ght syntax to use near ‘DATAB ASE‘ at line 1mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || mysql || test || xxj |+--------------------+4 rows in set (0.00 sec)mysql> Ctrl-C -- exit!Aborted[[email protected]bogon ~]# ls /var/lib/mysql/ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test xxj #可以看到建立的資料庫都存放在這個目錄下[[email protected] ~]# ls /var/lib/mysql/xxj/db.opt
1 mysql資料庫安裝及基本配置