/etc/init.d/mysqld start
使用/etc/init.d/mysqld start命令啓動數據庫的本質就至關於執行mysqld_safe --user=mysql &命令。mysql
[root@db02 application]# netstat -lntup| grep 3306linux
tcp 0 0 :::3306 :::* LISTEN 45675/mysqld sql
[root@db02 application]#數據庫
mysqladmin -uroot password ‘123456’設置密碼
mysqladmin -u root -p password ‘oldboy123’修改密碼app
mysql -uroot -poldboy123 -h 127.0.0.1
mysql -uroot -poldboy123 --protocol TCP
mysql -uroot -poldboy123 -S /application/mysql/tmp//mysql.sock socket
mysql> show character set;
mysql> show charset;tcp
mysql> select version();ide
+-----------+線程
| version() |索引
+-----------+
| 5.6.36 |
+-----------+
1 row in set (0.04 sec)
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 5.6.36 |
+-----------+
1 row in set (0.18 sec)
mysql>
mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
Connection id: 11
Current database: oldboy
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.36 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 2 hours 44 min 34 sec
Threads: 1 Questions: 41 Slow queries: 0 Opens: 68 Flush tables: 1 Open tables: 61 Queries per second avg: 0.004
--------------
mysql>
[root@db02 scripts]# mysql -V
mysql Ver 14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@db02 scripts]#
[root@db02 scripts]# mysql --help| grep Distrib
mysql Ver 14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@db02 scripts]#
mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.6.36 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.36 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | linux-glibc2.5 |
+-------------------------+------------------------------+
7 rows in set (0.34 sec)
mysql> select user();
mysql> show engine innodb status\G
mysql> create database oldboy charset gbk;
mysql> show create database oldboy;
mysql> create user oldboy@'172.16.1.%' identified by '123456';
grant all on oldboy.* to oldboy@'172.16.1.%' identified by '123456';
show grants for oldboy@'172.16.1.%'\G
select user ,host from mysql.user;
use oldboy
mysql> create table test ( id int(4) not null , name varchar(16) default null ) engine=Innodb default charset=gbk;
mysql> show create table test;
mysql> desc test;
insert into test(id,name) values(1,'oldboy');
mysql> insert into test values(3,'老男孩'),(4,'olodboyedu');
mysql> select * from test where name='oldboy';
mysql> update test set name='oldgirl' where name='oldboy';
mysql> alter table test add age tinyint(2) after id;
\! mysqldump -uroot -p123456 -S /tmp/mysql.sock --events -B oldboy mysql >/opt/bak_$(date +%F).sql
truncate table test;
delete from test;
drop table test;
drop database oldboy;
mysql -uroot -p123456 -S /tmp/mysql.sock </opt/bak_2017-11-20.sql
1.先導出表中數據
mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B oldboy >/opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==能夠看到這一行:ENGINE=MyISAM DEFAULT CHARSET=gbk;
2.修改字符集
sed -i 's#CHARSET=gbk#CHARSET=utf8#g' /opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==驗證:) ENGINE=MyISAM DEFAULT CHARSET=utf8;
3.恢復數據
在sql文件中添加一條 set names utf8;並恢復
mysql -uroot -poldboy123 -S /data/3306/mysql.sock oldboy </opt/test.sql
alter table test add primary key (id);
alter table test add index index_name (name);
mysql> alter table test add shouji char(11) after name;
mysql> insert into test values(5,'12','ll','123456'),(6,'13','kaka','5236');
mysql> alter table test add index index_shouji (shouji(8));
mysql> desc test;
mysql> show create table test\G
mysql> show index from test\G
mysql>
mysql> alter table test drop index index_shouji;
mysql> alter table test drop index index_name;
alter table test add index index_name_shouji(name(6),shouji(8));
mysql> select * from test where name='oldboy' and shouji like '135%';
mysql> explain select * from test where name='oldboy' and shouji like '135%'\G
mysql> alter table test engine=myisam;
revoke select on oldboy.* from oldboy@'172.16.1.%';
drop user oldboy@'172.16.1.%';
drop database oldboy
mysqladmin -uroot -poldboy123 shutdown
[root@db01 ~]# netstat -tunlp|grep 3306 #<==先查看服務是否正常
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 62358/mysqld
[root@db01 ~]# kill 62358 #<==kill掉進程的pid
[root@db01 ~]# netstat -tunlp|grep 3306 #<==mysql進程已關閉
[root@db01 ~]# mysqld_safe --help #<==利用mysqld_safe命令指定配置文件,跳過受權表來破密碼
[root@db01 ~]# mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 >/dev/null &
[root@db01 ~]# mysql -S /data/3306/mysql.sock #<==無密碼登陸進多實例3306
mysql> select user,host,password from mysql.user where user='root' and host='localhost';
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |
+------+-----------+-------------------------------------------+
1 row in set (0.00 sec)#<==先看下mysql庫,user表裏的字段內容
mysql> update mysql.user set password=PASSWORD("123456") where user='root' and host='localhost'; #<==利用update命令來更新root@localhost用戶的密碼
mysql> flush privileges; #<==記得刷新受權表,不然不會立馬生效的
Query OK, 0 rows affected (0.00 sec)
[root@db01 ~]# sed -i 's#mysql_pwd="oldboy456"#mysql_pwd="oldboy123"#g' /data/3306/mysql
[root@db01 ~]# grep mysql_pwd= /data/3306/mysql #<==修改啓動腳本的密碼,才能利用命令來中止服務
mysql_pwd="oldboy123"
[root@db01 ~]# /data/3306/mysql stop #<==先停掉服務,由於有跳過受權表的參數在
Stoping MySQL...
[1]+ Done mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 > /dev/null
[root@db01 ~]# /data/3306/mysql start #<==啓動
Starting MySQL...
[root@db01 ~]# ss -tunlp|grep 3306 #<==偵聽正常
tcp LISTEN 0 600 *:3306 *:* users:(("mysqld",66695,12))
[root@db01 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock #<==成功登陸