MySQL知识点
一、在Linux centos上新安装了mysql后,为mysql添加密码:
1.安装完成时,可以使用命令service mysqld start开启mysql;
需要注意此时进入mysql是匿名访问的,不能查看名为mysql的数据库,也不能创建新的数据库,否则会报错.mark一下下
2.停止mysql服务:
$ service mysqld stop;
也可以使用kill命令杀掉mysql的守护进程,在此之前你需要先查看一下都有哪些mysql的进程:
$ ps -ef | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9
3.修改mysql登录设置:
$ vi /etc/my.cnf
在[mysqld]中加入:
skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存退出。
4.重启mysqld。
$ service mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
5.登录并修改mysql默认账户root的密码:
$ mysql (或者使用/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;
mysql> UPDATE user SET Password=PASSWORD('Your password') WHERE User='root';
mysql> flush privileges;
mysql> exit;
6.将配置文件中my.cnf修改回来:
用#注释掉skip-grant-tables
7.重启mysqld
$ service mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
8.现在即可使用root和密码登录:
$ mysql -uroot -p
二、mysql的启动、停止和重启
1.启动
方法1:使用service启动,需确定是否已将管理做成service,需要到/etc/init.d/目录下确认
# service mysqld start
或者
# /etc/init.d/mysqld start
方法2:手动执行启动命令(/usr/bin下)启动
--可以加一些常用的配置参数例如
--default-file=/etc/my.cnf 读取的代替通用选项文件的选项文件名,如果给出,必须首选该选项,即排在所有参数的最前面
--user=mysql 以用户名user_name或者数字用户user_id运行mysql服务器(用户是指系统登录用户,而不是授权表中的MySQL用户)
--basedir=/usr MySQL安装路径
--datadir=/var/lib/mysql 数据目录的路径
--socket=/var/lib/mysql/mysql.sock用于进程间通信的sock文件
--pid-file=/var/run/mysqld/mysqld.pid 进程id的文件路径
--log_error=/var/log/mysqld.log 错误日志写入给定文件
--port=port_num 用来侦听TCP/IP连接的端口号,端口号必须为1024或者更大值,除非MySQL以root系统用户运行。
# /usr/bin/mysqld_safe &
注明:查看mysql相关信息
# ps auxwf | grep mysql | grep -v grep
返回:
root 3426 1 0 03:06 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 3528 3426 0 03:06 pts/0 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
/usr/bin/mysqld_safe是MySQL的运行路径
/var/lib/mysql 是MySQL数据库文件存放的路径
/usr/libexec/mysql 是MySQL的安装路径
2.停止
方法1:使用service停止
# service mysqld stop
或者
# /etc/init.d/mysqld stop
方法2:使用mysqladmin命令停止
# /usr/bin/mysqladmin shutdown -uroot -ppassword
3.重启
# service mysqld restart
# /etc/init.d/mysqld restart
4.查看MySQL版本号
详细信息:
mysql>status;
--------------
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (i386) using readline 5.1
Connection id:3
Current database:
Current user:root@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.1.73 Source distribution
Protocol version:10
Connection:Localhost via UNIX socket
Server characterset:latin1
Db characterset:latin1
Client characterset:latin1
Conn. characterset:latin1
UNIX socket:/var/lib/mysql/mysql.sock
Uptime:24 sec
Threads: 1 Questions: 5 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.208
--------------
仅查看版本:
+-----------+
| version() |
+-----------+
| 5.1.73 |
+-----------+
mysql>select version();
三、Linux命令行导入导出.sql文件
1.导出数据和表结构
mysqldump -uroot -ppassword database > database.sql
例如:
# /usr/local/mysql/bin/ mysqldump -uroot -pcpt test > t.sql
2.只导出表结构
mysqldump -uroot -ppassword database > database.sql
例如:
# mysqldump -uroot -pcpt -d test > t.sql
3.导入数据库
3.1 建立空数据库
mysql>create database test;
3.2 导入数据库
方法1:
mysql>use test;
mysql>set names utf8;
mysql>source /var/www/html/t.sql
方法2:
mysql -uroot -ppassword database < database.sql
# mysql -uroot -pcpt test < t.sql
导入导出知识可看这里: https://www.cnblogs.com/chenmh/p/5300370.html
四、常用命令
1.查看表结构
mysql>desc table_name;
2.更改表结构
mysql>alter table table_name add column column_name varchar(256) not null default '0' after column_name_another;
mysql>alter table table_name drop column column_name;
mysql>alter table table_name alter column column_name datatype;
3.G格式化显示查询结果
mysql>select * from user order by id desc limit 0,10G
4.mysql连接远程主机
$ mysql -h104.207.154.12 -ubenbirdcc -pimbenbird
5.查看mysql相关变量配置
mysql>show variables like '%Key word%';
6.查看sql语句使用索引的相关情况
mysql>explain ...
7.查看锁表相关命令
mysql>show open tables where in_use > 0; //是否正在使用的表 show open tables from db;
mysql>show processlist; //如果有锁表对业务造成影响,根据上一个命令查询到相关进程,杀掉该进程Id对应的进程即可
mysql>select * from information_schema.innodb_locks; //查看正在上锁的事务
mysql>select * from information_schema.innodb_lock_waits; //查看正在等待上锁的事务
锁表相关知识可看这里:https://blog.csdn.net/enweitech/article/details/52447006