Ubuntu
安装mysql
sudo apt-get install mysql-server mysql-client
测试是否安装成功
sudo netstat -tap | grep mysql
Linux mysql修改root密码:
<pre “=””>mysqladmin -u root password your_new_passwd
相关操作
登录 mysql -uroot -p
检查MySQL服务器占用端口 netstat -nlt|grep 3306
检查MySQL服务器系统进程 ps -aux|grep mysql
查看数据库的字符集编码 show variables like '%char%';
让MySQL服务器被远程访问
打开mysql配置文件
sudo vim /etc/mysql/my.cnf #找到将bind-address = 127.0.0.1注销
#bind-address = 127.0.0.1
修改后,重启MySQL服务器
sudo /etc/init.d/mysql restart
重新登录
mysql -uroot -p
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';flush privileges;
检查MySQL服务器占用端口
~ netstat -nlt|grep 3306tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
我们看到从之间的网络监听从 127.0.0.1:3306 变成 0 0.0.0.0:3306,表示MySQL已经允许远程登陆访问。
将字符编码设置为UTF-8(mysql 5.7.17)
默认情况下,MySQL的字符集是latin1,因此在存储中文的时候,会出现乱码的情况,所以我们需要把字符集统一改成UTF-8。
打开mysql配置文件sudo vim /etc/mysql/mysql.cnf
a) 打开mysql配置文件: vim/etc/mysql/my.cnf
b) 在[client]下追加: default-character-set=utf8
c) 在[mysqld]下追加: character-set-server=utf8
d) 在[mysql]下追加: default-character-set=utf8
最后:
[client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8 collation-server = utf8_unicode_ci !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
修改后,重启MySQL服务器,并登录mysql -uroot -p
再次查看字符串编码
mysql> show variables like '%char%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+-----------------------------------+ 8 rows in set (0.00 sec)
来自简书:http://www.jianshu.com/p/3111290b87f4
workbench 就相当于一个Windows的sqldevelop之类的图形管理工具
Ubuntu自带应用商店有下 但是不带utils 可以去官网下载完整版
有代码提示等功能 挺方便
Fedora/Centos(Fedora是dnf,Centos是yum)
安装mysql
dnf install mysql mysql-server mysql-libs mysql-server
mysql和 mysq lserver装好以后,安装workbench
https://dev.mysql.com/downloads/workbench/
mysql的配置文件被安装到/etc/my.cnf,
mysql server的启动脚本被安装到/etc/init.d/mysqld
打开3306端口
因为mysql默认使用的是3306端口,而centOS默认是不打开此端口的,因此要先打开它,命令是
/sbin/iptables -I INPUT -p tcp --dport 3036 -j ACCEPT
保存设置
/etc/rc.d/init.d/iptables save
更改编码:
[client-server] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] symbolic-links=0 character-set-client-handshake = FALSE character-set-server = utf8 collation-server = utf8_unicode_ci !includedir /etc/my.cnf.d
使用service命令启动、停止和重启MySQL。
#service mysqld start //启动 #service mysqld stop //停止 #service mysqld restart //重启
注意,这三个命令里面,是mysqld,后面还有字母d。这是MySQL服务的名称。
或者使用以下命令启动、停止和重启MySQL:
#/etc/init.d/mysqld start #/etc/init.d/mysqld stop #/etc/init.d/mysqld retart
修改MySQL密码
这里只写在丢失了root密码的情况。步骤如下:
1) 停止mysqld服务
#service mysqld stop 或#/etc/init.d/mysqld stop
2)安装模式进入mysql
#mysqld_safe --user=mysql --skip-grant-tables –skip-networking &
#mysql -uroot -p
Enterpassword: (不输入密码,直接按回车)
mysql>
update mysql.user set password=PASSWORD(‘你要设置的密码’) where user=’root’;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>
flush privileges;
Query Ok, 0 rows affected (0.00 sec)
mysql>
quit;
注意,在mysql的每一条命令(即mysql>的命令)最后都要加分号。然后就可以使用你设置的密码登陆了。
#mysql –uroot –p
Enter password:
然后,然后你想干嘛就干嘛了
MYSQL启动问题
如果发现启动不了mysql,要先查看日志,日志存放在/var/log/mysql.log
进入目录/var/log/用gedit打开mysql.log文件,或者用命令行less /var/log/mysql.log都可以,建议用命令行查看问题。有时候是因为端口被占用,例如:
[ERROR] Can’t start server: Bind on TCP/IP port: Cannot assign requested address
[ERROR] Do you already have another mysqld server running on port: 3306 ?
使用命令netstat查看端口使用情况,命令行如下:
#netstat -anp | grep "3306"
如果端口没有被占用,不会显示什么,如果端口被占用,可能显示如下:
tcp 0 0 : : : 3306 : : : * LISTEN 28194/mysqld
使用kill命令杀掉进程号:28194,命令如下
# kill -9 28194
kill掉进程后,再用命令行netstat -anp|grep “3306”就没有东西了。
另外,如果登录不了MySQL,并且无论怎么修改密码,还是登录不了,例如出现如下错误:
#mysql -u root -p
Enter password:
输入密码后者没有密码按回车后,都出现下面情况
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
这时候可以清理原来数据,重新配置一份数据了。命令行查看配置:
# ps aux | grep mysql
可能显示如下:
root 5978 0.0 0.0 …… /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 6214 0.0 0.0 ….. /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
找到了datadir=/var/lib/mysql,只要删除该datadir目录下的数据文件,重新启动mysqld服务,自动生成一份即可。如果数据库里有东西,需要手动把数据库拷贝出去,重新生成后再拷贝回来即可。删除datadir下文件命令如下:
#cd /var/lib/mysql
/var/lib/mysql目录下通常会有下面几个文件:
ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test
删除,
#rm -rf *
然后重启mysqld服务
# service mysqld restart
重新用root登录,此时密码为空
#mysql -u root
然后修改root密码以及声称新的用户和密码。
#update mysql.user set password=password('new password') where user='root';
Mysql创建、删除用户
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):
1.新建用户
登录MYSQL:
@>mysql -u root -p @>密码
创建用户:
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
这样就创建了一个名为:test 密码为:1234 的用户。
注意:此处的”localhost”,是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将”localhost”改为”%”,表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
然后登录一下:
mysql>exit; @>mysql -u test -p @>输入密码 mysql>登录成功
2.为用户授权
授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
登录MYSQL(有ROOT权限),这里以ROOT身份登录:
@>mysql -u root -p @>密码
首先为用户创建一个数据库(testDB):
mysql>create database testDB;
授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on testDB.* to test@localhost identified by '1234'; mysql>flush privileges;//刷新系统权限表
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on testDB.* to test@localhost identified by '1234'; mysql>flush privileges; //刷新系统权限表
授权test用户拥有所有数据库的某些权限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
//test用户对所有数据库都有select,delete,update,create,drop 权限。
//@”%” 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
//对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;即可。
3.删除用户
@>mysql -u root -p @>密码
mysql>Delete FROM user Where User='test' and Host='localhost'; mysql>flush privileges; mysql>drop database testDB; //删除用户的数据库
删除账户及权限:
>drop user 用户名@'%'; >drop user 用户名@ localhost;
4.修改指定用户密码
@>mysql -u root -p @>密码
mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost"; mysql>flush privileges;
5.列出所有数据库
mysql>show database;
6.切换数据库
mysql>use '数据库名';
7.列出所有表
mysql>show tables;
8.显示数据表结构
mysql>describe 表名;
9.删除数据库和数据表
mysql>drop database 数据库名; mysql>drop table 数据表名
mysql5.7测试以上代码通过
参考:
http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html
本站由以下主机服务商提供服务支持:
0条评论