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,10\G
	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; //查看正在等待上锁的事务
	锁表相关知识可看这里:http://blog.csdn.net/enweitech/article/details/52447006



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值