欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Linux centos上新安装了mysql后,为mysql添加密码

程序员文章站 2022-08-12 21:10:34
MySQL知识点 一、在Linux centos上新安装了mysql后,为mysql添加密码: 1.安装完成时,可以使用命令service mysqld start开启m...

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