groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
mkdir -p /usr/local/mysql
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled
在cmake過程中會出現要安裝“yum install -y ncurses-devel”這個包
rm CMakeCache.txt
make && make install
chown -R mysql.mysql /usr/local/mysql//這個指令的作用是如果前面已經做過的這個指令,則執行完make && make install 這個指令
之後須要執改/usr/local/目錄下的mysql這個目錄的屬主與屬組
export PATH=$PATH:/usr/local/mysql/bin///初始化環境變量
[root@localhost ~]# vi .bash_profile//想開機自動運作編輯.bash_profile這個檔案
PATH=$PATH:/usr/local/mysql/bin/ //添加這一行話
cp support-files/my-medium.cnf /etc/my.cnf //建立配置檔案
cp support-files/mysql.server /etc/init.d/mysqld//添加系統服務,将mysql.server腳本檔案複制到/etc/init.d/目錄下,改名為mysqld,然後設定執行權限
chmod 755 /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld //添加/etc/init.d/myspld到chkconfig裡,用service指令來管理(service mysql)
或直接用chkconfig --add mysqld也是可以添加的
chkconfig mysqld --level 235 on
/usr/local/mysql/scripts/mysql_install_db --user=mysql \//初始化腳本mysql_install_db位于安裝目錄的scripts檔案夾中
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql --datadir=/home/mysql //指定使用者為mysql,連結檔案是/var/lib/mysql,基本目錄
/usr/local/mysql,資料目錄為/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock //源檔案是/var/lib/mysql/mysql.sock,連結
的檔案是/home/mysql/mysql.sock
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
以上所有的配置完了之後,一定要用“source /root/.bash_profile”這個指令來對初始腳本重新加載,這樣用mysql
這個使用者就能登入了
service mysqld start
netstat -tnl | grep 3306
#mysql -u root //登入資料庫
-------檢視指令----------
mysql> show databases;
mysql> use test;
mysql> show tables;
mysql> describe user; //檢視表内容(檢視user表裡的内容)
----------新增指令-----------
mysql>CREATE DATABASE benet;//建立資料庫名為benet
mysql>use benet; //進入benet這個資料庫
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name)); //建立表名為users
注釋:“user_name”表示字段1名稱(也就是表格的第一行),“char(16)”表示類型,“not null”表示null值不能為空 NO;
“user_passwd”表示字段2名稱(也就是表格的第二行),“char(48)”表示類型,“default ''”表示null可以為空 YES;
“primary key(user_name)”表示primary key(主鍵名)
mysql> INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD('123456')); //在users表中插入内容
mysql> INSERT INTO users VALUES('lisi', PASSWORD('654321')); //password是使用者為密碼加密的
mysql> insert into users values('sina',password('123abc'));
------------删除指令--------------
mysql> DELETE FROM users WHERE user_name='lisi';
mysql> DROP TABLE users;
mysql> DROP DATABASE benet;
----------更改指令---------
mysql> UPDATE users SET user_passwd=PASSWORD('') WHERE user_name='lisi';
mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';
------------查詢指令-----------
mysql> SELECT user,host,password FROM mysql.user WHERE user='';
mysql> select * from users; //檢視user表裡的所有資訊
mysql> select user from users; //檢視users表裡的user這個使用者字段裡有哪些
使用者
mysql>flush privileges; //重新整理授權資訊,
mysqladmin -u root -p password '123456' //改的是新密碼,要輸入的是舊的密碼
Enter password: //輸入舊密碼
[root@localhost ~]# mysql -u root -p //登入
Enter password: //輸入之前改的密碼123456
---------------授權指令-------------------
mysql> GRANT select ON auth.* TO 'tom'@'localhost' IDENTIFIED BY '123456';//建立tom使用者密碼設定為123456,對其授權隻能查詢以auth開頭的所有表。
mysql> grant all on benet.* to 'tom'@'localhost'identified by '123';
mysql>flush privileges;
GRANT語句:專門用來設定資料庫使用者的通路權限。當指定的使用者不存在時,GRANT語句将會建立新的使用者,否則GRNAT
語句使用者修改使用者資訊。語句格式如下:
GRANT 權限清單 ON 庫名.表名 TO ‘使用者名’@‘來源位址’【IDENTFIED BY ‘密碼’】
mysql> SHOW GRANTS FOR 'dbuser'@'192.168.4.19'; (例如上面的例子:SHOW GRANTS FOR 'tom'@'localhost';,那個“使用者名@來源位址”要是一樣的)
mysql> REVOKE all ON auth.* FROM 'xiaoqi'@'localhost';
---------------備份與恢複指令------------------
# mysqldump -u root -p --opt --all-databases > all-data.sql //備份所有資料庫
# mysqldump -u root -p --database benet > benet.sql //備份auth資料庫
# mysqldump -u root -p mysql user > mysql-user.sql //備份mysql的user表
mysql>create database;
# mysql -u root -p test < mysql-user.sql //将備份還原到test資料庫中。
例子:
mysqldump -u root -p --database user > user.sql//将資料庫中名為user的資料庫備份出來(備份user這個資料庫)
mysql -u root -p < benet.sql//将備份user資料庫名資料庫user.sql還原到資料庫中
yum install /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.i686.rpm -y