MYSQL服务器登录和权限设置

服务器端:进入命令提示符(管理员权限)

net start mysql:启动服务器;

net stop mysql:关闭服务器;

mysql -u用户名 -p密码:登录mysql,-u与用户名之间可有空格也可没有,但-p与密码间必须无空格;登录进去后会出现角标">",角标后直接输入sql命令即可,注意需以分号结束;

>use databasename:指定使用的数据库;

>update user set user="新用户名" where user="旧用户名"(一般初始用户名为root);

>flush privileges:刷新权限;

>alter user '用户名'@'localhost' identified by '新密码':修改登录密码,用户名与@无空格,用户名可加引号也可不加,sql命令中单双引号效果一样;

>create database if not exists databasename default charset utf8 collate utf8_general_ci:创建数据库;

>show databases:显示所有数据库;

>show tables:显示某个数据库的所有表(需先输入use mysql);

>show columns from tablename:显示指定表的所有列;

>describe tablename:显示表结构;

>status:查询mysql的状态,包括显示连接id,当前用户名,服务器版本,TCP端口等;

>exit:退出mysql登录,即注销;

mysqld -remove:卸载mysql(-remove与--remove等同);

mysqld -install:安装mysql(-install与--install等同);

本地机作为mysql服务器供远程其他电脑访问步骤:

1、远程电脑端输入快捷键:Window+R,输入cmd打开命令提示符,输入"ping  服务器ip地址",ping得通则表明网络关系可行,ping不通的可能原因要么就是本地机和远程机不在一个网络(局域网或互联网)中,要么就是本地机设置了网络防火墙阻止了远程终端的访问,关闭防火墙即可。

2、本地机使用root账户登录mysql,创建一个公共账户,即在mysql库的user表中新增一条公共账户记录:输入>create user '公共账户名'@'%' identified with mysql_native_password by '公共账户密码'。%表示任意一台非本地终端都可以访问该数据库,如果是localhost则只能本地机访问数据库。另外创建新账户时默认使用caching_sha2_password插件类型的缓存密码,该密码只适用于本地机,若远程电脑要访问,则需将caching_sha2_password修改为mysql_native_password插件类型的本地密码,这就是with mysql_native_password的作用。

3、输入:select host,user,plugin from user 就能看到在user表中新增的一条host记录,plugin的值即为登录密码的类型。

4、给新增账户授予访问某个数据库的权限:grant all privileges on databasename.* to '公共账户名',将操作某个数据库的所有权限赋给公共账户,使用该语句的前提是要先创建名为'databasename'的数据库。那么远程终端通过该公共账户就可以登录操作数据库了。

5、如果要让远程终端也能使用root账户登录和操纵数据库,则将user表中用户名为root的host属性值由localhost改为%即可:update user set host='%' where user='root',接着修改本地密码:alter user 'root'@'%' identified with mysql_native_password by "新密码"。

5、删除账户:delete from user where user='公共账户名'(此公共账户没有授任何权限时可用,否则删除后无法再次创建同名账户)或drop user username(默认删除的是username@'%'这个用户,如果还有其他用户,例如username@'localhost',test@'ip'等则不会一起被删除),最好写具体为drop user username@'XXX',XXX表示与username对应的host(此公共账户不管是否授权都可以删除干净,删除后可再次创建同名账户)。

常见问题:

1、输入net start mysql报错:服务名无效,原因是mysql并未注册到服务中,需要先执行命令mysqld --install注册服务,若执行命令mysqld --install报错:mysql不是内部或外部命令,则是未配置mysql环境变量,做法见问题2。

2、当输入mysqld xxx或mysql xxx没有任何反应也没有报错信息时,表明安装路径与环境变量配置的路径不一致,一般安装路径默认为C盘,无法在安装时手动指定路径,需在安装完成后将安装生成的文件手动剪切至D盘,即环境变量配置的路径(例如:D:\MySQL\MySQL Server 8.0\bin)。

3、当输入net start mysql时报“发生系统错误2,系统找不到指定文件”的错误时,可能是先前安装的mysql没有卸载干净,可输入mysqld -remove,再输入mysqld -install来进行重新安装。

4、当输入net start mysql显示"mysql服务无法启动,服务没有报告任何错误"时,原因在于缺少data文件夹,可输入mysqld --initialize来自动生成data文件夹,如果已有data文件夹还报此类错误,则把该文件夹删了重新初始化。需注意mysqld --initialize不等同于mysqld -initialize,后者会报错。还有一种情况是即便存在data文件夹,输入net start mysql仍显示"mysql服务无法启动,服务没有报告任何错误",并且输入mysqld -initialize时报"cannot change directory to /home/mysql: No such file or directory"的错误(不管是否删除了data文件夹都会报错),则是因为修改了Mysql Server的安装路径但忘了修改my.ini的文件内容,将basedir和datadir的路径修改为对应路径即可。

5、启动服务后输入mysql -uroot -p后显示"access denied for user root@localhost",原因可能是该账户不存在。首先关掉服务,输入mysqld --initialize --user=root --console,如果报错则将data文件夹内容清空重试,成功后会生成root用户的初始密码。初始密码可在data文件夹里的.err文件中找到,样式如下:A temporary password is generated for root@localhost: XXX,XXX即为临时初始密码,这时重启服务输入mysql -uroot -pXXX即可。

6、输入一段命令后回车显示'error 1096(HY000): operation XXX failed for XXX',可能执行有延迟,多次输入多次执行就好。如果在创建账户时出现'error 1096(HY000): operation create user failed for 'XXX'@'XXX',则是因为XXX'@'XXX'之前已经创建过,而在删除时使用了语句delete from user where user='XXX',一般情况下使用delete删除记录后再次创建不会报错,但如果对之前创建的账户进行了授权等其他操作,则delete删除不彻底(只删除了user表中的内容),此时需要使用命令drop user 'XXX'@'XXX'来完全删除该账户记录(不仅删除了user表中的该条数据也删除了关联表db中对数据库控制权限的记录,从而撤销其原有权限),再输入flush privileges后即可重新创建账户。

猜你喜欢

转载自blog.csdn.net/liu__yuan/article/details/125621745