问题:
Mysql数据库的安装后出现无法登录的情况
>> 首先确定mysql服务是否启动了(ps -ef |grep mysqld),大部分情况是你直接mysql登录,
如果mysql的user表中没有本机用户为root,并且密码为空的话就会提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
可以使用指定用户名、密码登录,mysql -uuser -p , 再输入密码。
还是进入不了,那是不是密码忘记了。
那可以重启mysql服务
1)mysqladmin shutdown;
2)mysqld_safe --skip-grant-tables & (不读取mysql的授权表)
3)mysql -uroot -p 直接进入
4)use mysql;update user set Password=password('newpassword') where User='root';
再重启mysql,应该就ok了。
ps:mysql的root帐号不要用空密码,需要了解更多权限信息可以多了解mysql的user表,或者google grant linux mysql
Mysql数据库API接口需要了解更多
Mysql的一些命令不熟悉
>> 呵呵,这两个其实是一个问题。
不用急,以前没有怎么用过,肯定不会熟悉了。
至于mysql命令,在mysql命令行下,help老大可以帮你。具体的可以help select; help insert; 等等
而Mysql API得看看<<MySQL中文参考手册.chm>> 中C API描述这一章。
其实主要是mysql_init;mysql_real_connect; mysql_real_query; mysql_store_result;mysql_fetch_row;mysql_close这六个函数。
问题:
如何编写一个健壮的网络程序
>>这个问题有点大,分解开来其实是两个问题。1.如何编写一个健壮的程序 2、健壮的网络程序
首先是怎么写一个健壮的程序,james觉得
第一要有良好的编码规范和对语言基本层面的透彻理解
规范:譬如注意局部变量的初试化,防止用到脏值数据
对数据的校验和验证,防止除0错误、数组越界以及指针乱指。
语言基本要素:new/delete的配对使用;对const的理解,防止函数内部发生乱修改数据的行为。参数传值与传引用的区别;
对指针的理解等等
深刻的体会这些,能很大程度上降低bug以及隐藏bug的概率,提高程序健壮性
第二是深刻理解程序的功能(他真正要做的是什么)、评估边界条件以及做好异常错误处理
要做到这个不容易,但有几个窍门。a 是缩小每个函数的行数,限制每个函数的单一功能
b、从测试人员的角度对程序进行测试
至于是健壮的网络程序,那就得包括前面所说的两条。
再加上第三、考虑网络的复杂性、以及变化性。
譬如定时器的使用,包括网络是否断开、请求的服务是否挂了、网络包是否发完了,网络包是否读完了
发生这种情况时候,要触发什么行为,是重连,重发。是偶然的网络波动,还是彻底的不可用。
第四、考虑网络服务的容量
你的服务能支撑多大的容量,出现过大的服务请求,程序能否预警,采取什么策略保证一定的可用性。
最后,没有绝对的健壮的程序,时间一直在考验。